アーカイブ

ActiveRecord::RecordNotFound. このエントリーを含むはてなブックマーク はてなブックマーク - ActiveRecord::RecordNotFound.

2007 年 8 月 15 日 コメント 2 件
>> User.find_by_login('foo')
=> nil
>> User.find(123)
ActiveRecord::RecordNotFound: Couldn't find User with ID=123
from /usr/local/ruby186/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1031:in `find_one'
from /usr/local/ruby186/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1014:in `find_from_ids'
from /usr/local/ruby186/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:419:in `find'
from (irb):7

レコードが見つからなかったときの挙動。
ActiveRecord::Base#find_by_*ではnilを返すのに、ActiveRecord::Base#findではActiveRecord::RecordNotFoundを投げてくるっていうのがどうも分からん。

Class: ActiveRecord::Base

RecordNotFound — no record responded to the find* method. Either the row with the given ID doesn’t exist or the row didn’t meet the additional restrictions.

ドキュメントはこう言ってるのに。
そもそも、レコードがなかったくらいでException投げてくるのって重い気がする。
ARだけになにか理由があるんだろうけど、それが知りたい。

カテゴリー: Rails タグ: