Возможно самая известная лучшая практика является нормализацией базы данных. Этот набор методов позволяет Вам разрабатывать свою базу данных так, чтобы были удалены избыточные объекты, и поля сгруппированы логически.
Если вы просто избегаете исключения, которое вас беспокоит, семейство функций "find_all_by .." работает, не бросая исключения.
Comment.find_all_by_id([2, 3, 5])
будет работать, даже если некоторые из идентификаторов не существуют. Это работает и в случае
user.comments.find_all_by_id(potentially_nonexistent_ids)
.
Comment.where(id: [2, 3, 5])
Чтобы исключения не убивали ваше приложение, вы должны перехватывать эти исключения и обрабатывать их так, как вы хотите, определяя поведение вашего приложения в тех ситуациях, когда идентификатор не найден.
begin
current_user.comments.find(ids)
rescue
#do something in case of exception found
end
Вот дополнительная информация об исключениях в ruby.