読者です 読者をやめる 読者になる 読者になる

ActiveRecordのfind(id)はnilを返さない。

Rails
f = Foo.find(id)
return nil if f.nil?

みたいなコードを書いてしまいそうになる。これは間違い。find(id)で見つからない場合、例外(ActiveRecord::RecordNotFound)が発生する。正しくは、

f = Foo.find_by_id(id)
return nil if f.nil?