我有这段代码:
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))"
有没有办法只获取现有记录而不是例外?
答案 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
不会引起丢失记录的错误,因此即使缺少记录,您也很酷。