Ответ 1
Article.find_all_by_id([1,2,3])
- это путь!
У меня есть этот код:
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))"
Есть ли способ получить только существующие записи, а не исключение?
Article.find_all_by_id([1,2,3])
- это путь!
Rails 3+, ruby 1.9+ путь:
Article.where(id: [1,2,3])
Проблема заключается в том, что использование find с идентификаторами вызывает исключения, когда записи отсутствуют. Вы можете попробовать что-то вроде
Article.all :conditions => ["id in (?)", [1,2,3]]
или более лаконично
Article.find_all_by_id [1,2,3]
с помощью find :all
не вызывает ошибок в отсутствующих записях, поэтому даже если записи отсутствуют, вы классные.