查询多条记录时如何避免ActiveRecord :: RecordNotFound异常

时间:2010-10-18 17:55:32

标签: ruby-on-rails ruby activerecord

我有这段代码:

Article.find([1,2,3])

但数据库中只存在记录 1 2 。我得到了这个例外:

"ActiveRecord::RecordNotFound (Couldn't find all Offers with IDs (1,2,3) (found 2 results, but was looking for 3))"

有没有办法只获取现有记录而不是例外?

3 个答案:

答案 0 :(得分:22)

Article.find_all_by_id([1,2,3])是要走的路!

答案 1 :(得分:12)

Rails 3+,ruby 1.9+方式:

Article.where(id: [1,2,3])

答案 2 :(得分:4)

问题是当缺少记录时,使用带有ID的find会引发异常。你可以试试像

这样的东西
Article.all :conditions => ["id in (?)", [1,2,3]]

或更简洁

Article.find_all_by_id [1,2,3]

使用find :all不会引起丢失记录的错误,因此即使缺少记录,您也很酷。