Как избежать исключений ActiveRecord :: RecordNotFound при запросе нескольких записей - PullRequest
13 голосов
/ 18 октября 2010

У меня есть этот код:

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 ]

22 голосов
/ 18 октября 2010

Article.find_all_by_id([1,2,3]) это путь!

12 голосов
/ 10 мая 2014

Rails 3+, ruby ​​1.9+ way:

Article.where(id: [1,2,3])
4 голосов
/ 18 октября 2010

Проблема в том, что использование find с идентификаторами вызывает исключения, когда записи отсутствуют.Вы можете попробовать что-то вроде

Article.all :conditions => ["id in (?)", [1,2,3]]

или более кратко

Article.find_all_by_id [1,2,3]

, используя find :all, что не вызывает ошибок при пропущенных записях, поэтому даже если записи отсутствуют, вы крутые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...