findよりfind_by_idでActiveRecord::RecordNotFoundを回避する
新しいブログをはじめました!
ブログ名:筋肉カメレオン
WordpressやAWS、時々筋トレについて書いてます。
Railsでデータをfindする時、該当件数が0件の時は、ActiveRecord::RecordNotFoundな例外になってしまうので、
rescue ActiveRecord::RecordNotFound
で例外処理をしなくてはならない。
これがずっと面倒だなぁとおもってたら、なんとfind_by_idを使えば、nilが返るので
user = User.find_by_id(params[:id]) unless user then # 0件のときの処理 end
と使えるらしい!!
これからは、find_by_*** を使います。。。
追記
http://blogs.yahoo.co.jp/killer2kmonday/16884102.html
おっと、ココ見たら、findで例外になるのは、
Model.find(id)
のようにidを指定したときだけだった。
Model.find(:first,:conditions=>["name=?",name]) #=> nil
こんな感じで使えばnilが返るのか〜。