Я пытаюсь найти модель по массиву идентификаторов, например, так:
Model.find [1,2,3]
, но предположим, что существует только две из этих моделей (модель с идентификатором 2 была удалена):
#<Model id: 1>
#<Model id: 3>
Я получаю ошибку, подобную этой:
#<ActiveRecord::RecordNotFound: Couldn't find all Models with 'id': (1, 2, 3) (found 2 results, but was looking for 3).>
Можно ли перехватить эту ошибку и определить, какая из моделей отсутствовала?
сказать, что я в мой контроллер:
def index
@models = Model.find params.require(:model_ids)
rescue ActiveRecord::RecordNotFound => e
e.full_message
???
end
Я бы хотел, чтобы в строке ???
был запущен какой-то код исключения e
, который вернет 2
, сообщая мне, какой из моделей не было найдено, поэтому я могу перезапустить запрос без него, отметив, какие из них не были найдены.