Rails

rspec で例外が発生するかどうかをテストしたい

以下のような感じでテスト可能 it '100回繰り返すと99回目で例外が発生する' do proc { 100.times { |time| get :somewhere, { id: time } } }.should raise_error(UserDefinedException) { |exception| exception.message.should eq("検証すべき業務エラー…

Aptana Studio 3 (Eclipse Plug-In Version 含む) で Rails プロジェクトを扱う際、タスクビューに TODO や FIXME などを列挙させたい(未解決)

コントローラやモデルなどに関しては def hoge #TODO あとで直す return "fuga" endなどと書けば普通にタスクビューに列挙されますが、ビューなどで … <%#TODO あとで直す %> <%# TODO あとで直す %> <% #TODO あとで直す %> <% # TODO あとで直す %> <img src="hoge.gif"> …など…

rails s とか rake spec とか打つと SECURITY WARNING: No secret option provided to Rack::Session::Cookie. と出る

Rails 3.2.12 にしたところ出なくなったので、可能な場合は Rails のアップデートを試してみるといいかもしれません。 $ cd /awesome/rails/app $ gem update rails $ gem update rack $ vi Gemfile gem 'rails', '3.2.12' # <= ここを修正する $ bundle upd…

Rails 起動時に "No such file or directory - getcwd" エラーが出る場合

Rails に限らないけど、(1) 例としてターミナルなどで /usr/local/src/hoge にアクセスする (2) samba 経由などでアクセスし /usr/local/src/hoge ディレクトリを消す (3) 再び /usr/local/src/hoge ディレクトリを作る (4) /usr/local/src/hoge は存在して…

特定のマイグレーションが実行されるまで before_save を適用しない

Model の before_save は便利ですが、きちんと設計しないと before_save 内の条件によって過去のマイグレーションファイルに影響を及ぼすことがあります。db/migrate/100_create_hoge.rb class CreateHoge < ActiveRecord::Migration def self.up # テーブル…

Rails の個別スタイルシート呼び出しをもうちょっといい感じにする

例えば WelcomeController の index アクションが呼ばれた場合、デフォルトの状態だとビューには welcome.css(.scss) がロードされるのだけど、これを呼ぶかどうかについて、ファイルの有無とか controller での変数で判定できたらいいのになという話。色々…

RSpec で should == expected を記述すると Aptana 上で useless use == in void context 警告が出る

should == expected でも正しく動作することはするんだけど気になる。という場合は @hoge.count.to_i.should be == 1のようにする。

Ruby の strftime で月日や時刻の 0 埋めを行わない書式指定

Date の各値に対していわゆるゼロ埋め(0埋め)を行いたくない場合、書式パラメータにマイナスを付加すればいい。 p Time.now.strftime('%Y/%-m/%-d %-H:%-M:%-S') #=> 2012/8/14 9:4:10リファレンスだとここに載っている。

PHP の var_dump() に相当する Rails メソッド

Rails の場合は p か y だと思われる。 sample = {"a" => 1, "b" => 2} y sample #=>a: 1 b: 2 p sample #=>{"a"=>1, "b"=>2} シンボルでも OK 。 sample = {:a => 1, :b => 2} y sample #=>:a: 1 :b: 2 p sample #=>{:a=>1, :b=>2} ActiveRecord の find_by…