2013-10-01から1ヶ月間の記事一覧

Rails4 findでActiveRecord::RecordNotFoundではなくnilを返したい

findで失敗するとActiveRecord::RecordNotFoundが返ってくる。 例外処理をしてもいいが、ちょっとめんどくさいのでnilが返ってくるようにしたかった。 find_by_idという手もあったが、Rails4ではfind_byでハッシュが渡せるので、find_byを使用することにした…

Rails4 表形式で複数同時に更新

表形式のデータを複数同時に更新したかった。 ちょっと苦戦したのでメモ。routes.rbでルーティングの設定 resources :evaluations, only: [:edit, :update] get 'evaluations', :to => 'evaluations#edit', :as => :evaluations_edit post 'evaluations', :t…

Rails4 rspecによる例外のテスト

関数のテストをするとき、正常に例外が発生するかテストしたかった。仮に下記のような関数を作る def get_name(number) case number when 1 "名前1" when 2 "名前2" else raise ArgumentError, "引数が範囲外です。number= #{number}" end end specのテス…

Rails4 find_byでちょっとスマートに

Rails4ではfirstを使う代わりに、find_byでもっとスマートに書けるようです。firstを使った場合 User.where(:school_id => 1, :class_id => 1).first find_byを使った場合 User.find_by(:school_id => 1, :class_id => 1) to_sqlは使えないので、色々なパタ…

Rails4 ActiveRecordのdestroyで例外を発生させる

トランザクション内で削除を実行し、例外をキャッチしたかった。Rails4からdestroy!があるようだが、destroy_all!は存在しない。単体の削除は下記のように記述すればよい @user.destroy! 複数の削除は下記のように記述するしかないようだ users.each do |use…