ActiveRecordのfind(id)はnilを返さない。
f = Foo.find(id) return nil if f.nil?
みたいなコードを書いてしまいそうになる。これは間違い。find(id)で見つからない場合、例外(ActiveRecord::RecordNotFound)が発生する。正しくは、
f = Foo.find_by_id(id) return nil if f.nil?
f = Foo.find(id) return nil if f.nil?
みたいなコードを書いてしまいそうになる。これは間違い。find(id)で見つからない場合、例外(ActiveRecord::RecordNotFound)が発生する。正しくは、
f = Foo.find_by_id(id) return nil if f.nil?