タグ

railsに関するsue445のブックマーク (254)

  • The Recipe for the World's Largest Rails Monolith

    Slides for Ruby on Ales 2015 talk "The Recipe for the World's Largest Rails Monolith" https://ruby.onales.com/speakers#therecipefortheworldslargestrails

    The Recipe for the World's Largest Rails Monolith
  • Elixir/cowboyとRailsのサーバーベンチマーク比較 - Qiita

    業務でAPIサーバーを作る事になり、何で実装しようか検討したという話です。 候補としてRails(定番)が上がっていたものの、 大量のリクエストを捌く必要があるので大変そう ビジネスの成長に合わせてスケールさせ辛い(スゴい勢いで成長する) そこまで複雑な処理はしない(別のサブシスでごりごりやる、こっちはRails製) という事で他の選択を検討しました。 選択しとして Erlang ( + cowboy ) Elixir ( + cowboy ) Scala ( + akka ) Go があがったので、RailsとElixir/cowboyでAPIサーバーのプロトタイプを作ってベンチマーク比較をしてみました。 ※ ElixirはErlangと同水準のBeamを吐くのでErlangは除外しています (実際に計測した結果、同程度の性能でした、こちらは別途結果をまとめて公開します) ※ Go/Sc

    Elixir/cowboyとRailsのサーバーベンチマーク比較 - Qiita
    sue445
    sue445 2015/02/13
    面白い比較。適材適所大事
  • Rails4.2のweb-console上で直接Rakeを実行する - Qiita

    ActiveRecord::PendingMigrationErrorでエラー画面に飛んだ時、下に出ているweb-consoleのreplからrake db:migrateが実行できれば便利なのに、という話をしていて、ほぼそれだけのためにgemを作りました。 joker1007/web-console-rake Gemfileに書いておくだけで、web-consoleのreplでrake(taskname)というメソッドが使えるようになります。 オプションを渡せばspringにも対応します。 rake "spec"とかやればテストも流せます。(意味は余りない) 中身はめちゃくちゃダーティハックな感じで、ちょっと面白かったw

    Rails4.2のweb-console上で直接Rakeを実行する - Qiita
    sue445
    sue445 2015/02/12
  • RailsでPostgreSQLのJSONBデータ型を使う

    メモ。 調べた時のバージョンは、PostgreSQLは9.4.0で、Railsは4.2.0。 JSONBデータ型とはバイナリ型JSONの事。JSONBの"B"はバイナリ(binary)のB。 元々PostgreSQLでは9.2からJSON型に対応しており、9.4からJSONを独自バイナリ形式で格納するJSONB型が追加された。 JSONBの特徴をざっと書くと以下のような感じ データの正規化が行われ、入力結果が完全に保持されないケースがある(不要な要素の間の空白文字の削除、重複したキーがあった場合に後述したもののみ有効となる等)格納容量が大きくなる傾向にある。また、正規化が行われる為、格納処理は普通のJSON型の比べて遅い。検索がJSONと比べて格段に早い基的に、検索に特化している感じらしい。 JSONBについての詳細は、@nuko_yokohamaさんのJSONBデータ型を使ってみようが

    RailsでPostgreSQLのJSONBデータ型を使う
  • Rails4ではbackground:url("assets/hoge.png")の書き方は動かない話 - Qiita

    Rails4のproduction環境でのみ、画像が表示されない問題 問題の概要 先日、弊社サービス STORYS.JP をRails3からRails4.0.2にアップデートしました。 Rails4はRails3に比べて、development環境でのページロードにかかる時間が1/10ぐらいになりました。 読み込みに 1500ms ほどかかっていたのが、Rails4にするだけで番並みの 150ms で返ってくるようになり、当に非常に快適に開発ができるようになりました。 しかし、便利なものには弊害も多く、様々な問題がおきます。 その中でも、解決に苦しんだ問題が、 これまでは正常に表示されていた画像が、Rails4のproduction環境でのみ表示されない問題 です。 問題の原因 問題の原因は、 app/assets/images 以下に置いてある画像を直接パスを指定して読み込んでいるこ

    Rails4ではbackground:url("assets/hoge.png")の書き方は動かない話 - Qiita
    sue445
    sue445 2015/01/27
  • 早く知ってたら良かったrailsの技 - Qiita

    はじめに 自分が rails をさわり始めたときはバージョン1からバージョン2に変わるあたりだったのですが、バージョン2が出た年を振り返るとなんと2007年でした。 月日の流れが速い事に驚く中、早く知ってたら良かったのになぁって事をつらつらとまとめてみました。 最近 rails さわり始めてみたよ!って方の参考になれば良いなと思います。 今回は便利な gem とかではなく、素のrailsで出来ることを挙げています。 ちなみにバージョンは以下の環境です。 About your application's environment Ruby version 2.1.3-p242 (x86_64-darwin14.0) RubyGems version 2.2.2 Rack version 1.5 Rails version 4.1.8

    早く知ってたら良かったrailsの技 - Qiita
    sue445
    sue445 2014/12/24
  • Ruby on Rails 4.2 リリースノート - Railsガイド

    Rails 4.2の注目ポイント Active Job メールの非同期処理 Adequate Record Web Console 外部キーのサポート リリースノートでは、主要な変更についてのみ説明します。ここに紹介されていない機能、バグ修正、変更の詳細についてはGitHubにあるRailsメインリポジトリの コミットリスト を参照してください。 1 Rails 4.2へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。Railのバージョンが4.1に達していない場合は、まずアプリケーションをRails 4.1にアップグレードし、アプリケーションが期待どおりに動作することを確認してからRails 4.2にアップグレードしてください。アップグレードの際に注意すべき点のリストについては、Ruby on Rails

    Ruby on Rails 4.2 リリースノート - Railsガイド
    sue445
    sue445 2014/12/22
    英語弱者おじさんには有難い
  • Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys

    Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys We come bearing gifts! It’s Rails 4.2, and the final version is ready just in time for Christmas. It’s full of great toys, useful gizmos, and polished edges, courtesy of a fantastic community of merry elves who’ve been coding away with jolly glee for months. This is probably also the most well-tested new major re

    Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys
    sue445
    sue445 2014/12/20
  • MySQL 5.6からDATETIMEは小数点以下が四捨五入(round)されるので気を付けよう - Qiita

    MySQL 5.6からTIME, DATETIME, TIMESTAMPがマイクロ秒精度をサポートしました。 MySQL 5.6 Reference Manual :: 11.3.6 Fractional Seconds in Time Values で、ドキュメントにはちゃんとroundされるけどこれはSQL標準に従う挙動だからエラーとかワーニングは出ないよってさらっと書いてあるんですが、5.5では小数点以下は切り捨てだったんでマイクロ秒を付けてクエリ投げてた場合ハマりポイントになってます。 MySQL Bugs: #68760: Datetime rounding problem ActiveRecordにおけるDATETIMEのマイクロ秒サポート ここからはジョーカーさんのRails-4.2+MySQL-5.6での時刻オブジェクトのミリ秒の扱いについてへのアンサーエントリになるんです

    MySQL 5.6からDATETIMEは小数点以下が四捨五入(round)されるので気を付けよう - Qiita
    sue445
    sue445 2014/12/19
    kamipo神に足を向けて寝られないエントリだ
  • オレオレRailsアプリを支えるインフラの作り方 - くりにっき

    はじめに これは Ruby on Rails Advent Calendar 2014 - Qiita の19日目です 18日目 @yancya さんの Rails でシングルじゃないテーブル継承 - Qiita でした 19日目:オレオレRailsアプリを支えるインフラの作り方 最近では Heroku などのPaaS*1 も普及してインフラのことを知らなくても簡単にアプリを公開することができるようになりました。 しかしトラブルシューティングやパフォーマンスチューニングなどを行うにはアプリケーションコードだけで完結することは少なく、全体像を把握する必要があります。Railsアプリケーションの裏でどんな構成で動いているかを知っておくかは重要なのでざっくりと紹介したいと思います。 書かないこと Railsアプリを作る上でのノウハウ 便利なgemや外部サービスの紹介 *2 監視 アラート検知 モ

    オレオレRailsアプリを支えるインフラの作り方 - くりにっき
    sue445
    sue445 2014/12/19
    Railsアドベントカレンダーなのに一切RubyやRailsのコードがありません!!!
  • Rails で複雑な処理をつくったお - 瀬宮の球拾いブログ

    この記事は Ruby on Rails Advent Calendar 2014 - Qiita の17日目です。 前回は @gogotanaka さんの Railsを作った男たち - Qiita でした。 複雑な処理 is つらい Railsで複雑な処理を書くと死ぬ。 即死はしないけどあとで何度も苦労される 運用しつづけるとリソースをけっこうっている事に気づく。 いわばエナジードリンク。開発の活力の前借り 複雑な処理を避けるには? 処理の複雑さ=仕様の複雑さ 複雑な仕様を簡単な仕様にすれば、処理も簡単になる 最初の段階でドメイン設計やモデリング、デザインを頑張れば簡単にすることは可能 最初にリソース投下して設計する事、また途中で定期的に再設計、リファクタを繰り返し整理された設計を維持し続ければ複雑なドメインは避けられる。つまり複雑な処理も避けられる、はず。 ところがぎっちょん すべての

    Rails で複雑な処理をつくったお - 瀬宮の球拾いブログ
    sue445
    sue445 2014/12/18
    社内アプリいくつも作ったけど確かにレポートが一番面倒だった・・・(仕様策定含めて)
  • Rails-4.2+MySQL-5.6での時刻オブジェクトのミリ秒の扱いについて - Qiita

    MySQLは5.6系から時刻系のデータ型がミリ秒を持てるようになった。 やっとかよって感じですが。 最近持てるようになったので、Railsでは4.1まではMySQLに対してクエリを投げる時はミリ秒以下は問答無用で切り捨ててクエリを構築していた。 しかし、4.2betaが出る辺りで、MySQLにミリ秒対応のクエリを送るPRがマージされた。 MySQL 5.6 Fractional Seconds by arthurnn · Pull Request #14359 · rails/rails 既にMySQL側のカラムがミリ秒精度を持っている場合は特に問題は起きない。 けど、RailsMySQL使っててRailsのバージョン上げようかって時に、そんなことはほぼ無いだろうと思う。 その場合、ちょっと面倒なことになる。 MySQL5.6がミリ秒以下の値を受け取った場合、精度が足りない部分は四捨五入

    Rails-4.2+MySQL-5.6での時刻オブジェクトのミリ秒の扱いについて - Qiita
    sue445
    sue445 2014/12/16
    “Rails+MySQLの闇に触れるとkamipo神に行き着くので、マジで足向けて寝られない。”
  • Railsを作った男たち - Qiita

    あいさつ Railsアドベントカレンダー16日目です. いい感じに中だるみして来たのでトンズラここと思いましたが筆、執りましたよ. Railsに限らずOSSのすごいエンジニア(小並感)に感化されるのは良い事だと思います. (画像の使用許可等はちゃんと取りました. 画像無い方は許可取れませんでした.) Rails当に多くの方々のお力によって作られているとは思いますが、 今回は僕の恣意的な選択によって数人の方を挙げさせて頂きました.(基的にはコミット数) David Heinemeier Hansson(DHH) Github: dhh Blog: DAVID HEINEMEIER HANSSON Twitter: @dhh Railsの生みの親. 2004年7月にオープンソースとして公開するも、2005年の2月までコミット権を誰も渡さなかったとか. デンマーク生まれで写真家で尚かつカー

    Railsを作った男たち - Qiita
    sue445
    sue445 2014/12/16
  • Sidekiqのワーカープロセスが増殖してメモリを食い殺す - Less is Best

    現在開発を進めていたアプリで、スクレイピングをするためにワーカーに処理を投げるということを行なっていました。その際にSidekiqを使用していたのですが、Sidekiqのワーカープロセスが増殖してサーバーのメモリをい殺す。という自体が起きてしまい、エラーが頻発するようになってしまったのでその原因を探ってみました。 当初の段階で怪しいと思ったのはSidekiqのconfig/initializers/sidekiq.rbで設定ファイルに不備があるかconfig/unicorn/production.rbでUnicornの起動時にRedisとコネクション結ばせている設定がおかしいかの部分ではないかと見込みを付けてみました。 元の設定はこんな感じ config/initializers/sidekiq.rb Sidekiq.configure_server do |config| config

    Sidekiqのワーカープロセスが増殖してメモリを食い殺す - Less is Best
  • カニでもできるRailsでアクセスログ実装 - かにぱんのなく頃に

    こんにちはこんにちは Rails 4 でさくっとアクセスログ出そうと思ったけど、思ったよりさくっといかなかったので実装方法を残しておく ログの項目 これくらいの簡単な内容 時間 ユーザー名 リクエストURI USER AGENT 独自ログの設定 まず、Railsのログじゃなくて独自のログを出したかったので、 config/environment.rb # Load the Rails application. require File.expand_path('../application', __FILE__) class AccessLogger < ::Logger class NoHeaderLogDevice < ::Logger::LogDevice def add_log_header(file) end end class AccessFormatter < ::Logge

    カニでもできるRailsでアクセスログ実装 - かにぱんのなく頃に
    sue445
    sue445 2014/12/15
  • 楽天 TechTalk で Ruby と Rails の話をしてきた, 技術的負債を返却するには何をすればいいか - HsbtDiary(2014-12-12)

    楽天 TechTalk で RubyRails の話をしてきた 楽天の河口さんから RubyRails を使ってビジネスを回しているという話をしてくれという依頼がきたので、2日前の 12/10 に楽天オフィスまで言って何か話してきた。当日は遅刻してしまって申し訳ありませんでした...品川シーサイド難しい... 話の内容は、今年の RubyConf Taiwan と RailsPacific で話した内容を足して2で割ったような内容を1時間弱という感じ。 散々聞いた話だと思うけど 使い捨てじゃないプロジェクトやサービスで Rails 使うなら継続的にバージョンアップして技術的負債を返し続けるのが良い。一気にビッグジャンプしようとするととてもコストがかかるし、そもそも出来るかどうかわからない。 Rails 使うなら、Rails が良いとしているテクノロジーや方向性に積極的に乗っ

    楽天 TechTalk で Ruby と Rails の話をしてきた, 技術的負債を返却するには何をすればいいか - HsbtDiary(2014-12-12)
    sue445
    sue445 2014/12/13
    “使い捨てじゃないプロジェクトやサービスで Rails 使うなら継続的にバージョンアップして技術的負債を返し続けるのが良い。”
  • RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita

    RubyRailsにおけるTime, Date, DateTime, TimeWithZoneの違いRubyRails 2021.2.11追記:DateTimeクラスは非推奨なクラスになりました DateTimeクラスは非推奨なクラスとなり、DateTimeクラスではなくTimeクラスを使うよう、公式にアナウンスされました。 参考1 But we consider use of DateTime should be discouraged. - matz (Yukihiro Matsumoto) https://bugs.ruby-lang.org/issues/15712#note-4 参考2 DateTime は deprecated とされているため、 Timeを使うことを推奨します。 https://docs.ruby-lang.org/ja/latest/class/DateT

    RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita
  • RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita

    Deviseというgemのomniauthableを利用して、いろんなOAuth提供元サービスと連携orそのサービスを用いたログインを実現する方法。 こういうことやりたい人結構いるんじゃないかと思って、Wantedlyで実際にやってみた経験を大公開!! Gemのインストール deviseと各providerのomniauth関連Gemをインストール gem 'devise' gem 'omniauth' gem 'omniauth-facebook' gem 'omniauth-github' gem 'omniauth-google-oauth2' gem 'omniauth-hatena' gem 'omniauth-linkedin' gem 'omniauth-mixi' gem 'omniauth-twitter' とりあえず、omniauth-'provider'でググって出て

    RailsでいろんなSNSとOAuth連携/ログインする方法 - Qiita
    sue445
    sue445 2014/12/08
    twitterとfacebook以外は知らなかった。よい知見
  • Railsの標準テスティングフレームワークを使っていて覚えたこと - Qiita

    投稿遅くなってすみません。 最近、Rails標準のテスティングフレームワークを使ってテストコードを書いているのですが、その際に覚えたいくつかのことをまとめてみようと思います。 前提 Rails4.1の話です。 Controllerのテストを書くときに最低限覚えるべきassertメソッド Railsの標準テスティングフレームワークはTest::Unitを拡張して作られています。 Modelで使うメソッドはTest::Unitのそれとあんまり変わらないのでいいのですが、Controllerのテストは拡張されたメソッドが多く実装されています。ここではその中で最低限覚えておいたほうが良いと思うものを紹介します。 Controllerのテストを書くときは、すでにModelのテストを書いているので以下の項目に絞ってテストコードを書くようにしています。 適切なテンプレート、レイアウトファイルが選択されて

    Railsの標準テスティングフレームワークを使っていて覚えたこと - Qiita
    sue445
    sue445 2014/12/08
    4.1からdeloreanやtimecopなくてもよかったんや。。。
  • Rails複数DBシステムMySQLからPostgreSQL移行物語 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、三苫です。 この記事はTECHSCORE Advent Calendar 2014、5日目の記事です。 近年、Rails複数DB Casual Talksが開催されるなど、Railsでも複数・異種データベース混在したシステム構成は何ら特別でなものではなく通常の開発でカジュアルに選択される構成だぞという機運が高まっています。 togetterで参加者の反応を見ても、「establish_connectionは基」「前にも見たぞこのスライド」など、おおむね知見が業界全体に広まりつつある事がわかります。 記事はRails複数DBがまだカジュアルではない時代、マルチテナントシステムのデータベースをMySQLからPostgreSQLに、各サブシステムは縮退しつつも、システム全体としては無停止で移行を行った記録を共有するためのものです。 移行したシステムの前提 マルチテナントシステム

    sue445
    sue445 2014/12/05
    どうしてMySQLからPostgreSQLに移行する必要が出てきたかの背景がすごい気になる