[Ruby-On-Rails] Rails: Почему find (id) вызывает исключение в рельсах?



Answers

В дополнение к объяснениям runako, на самом деле довольно полезно иметь выбор: возбуждено ли исключение или нет. Я работаю над блочным приложением, и я хотел бы добавить поддержку для просмотра следующей или предыдущей записи в блоге. Мне удалось добавить два метода экземпляра в мою модель Post которые просто возвращают nil когда вы пытаетесь получить предыдущую запись при просмотре первого сообщения или следующей записи при просмотре последнего сообщения:

def next
  Post.find_by_id(id + 1)
end

def previous
  Post.find_by_id(id - 1)
end

Это позволяет избежать моего вспомогательного кода, который условно генерирует ссылки Previous Post / Next Post из-за необходимости обрабатывать исключение RecordNotFound , что было бы плохо, потому что оно использовало бы исключение для потока управления.

Question

Возможный дубликат:
Model.find (1) дает ошибку ActiveRecord, когда id 1 не существует

Если в базе данных нет пользователя с идентификатором 1, попытка User.find(1) приведет к возникновению исключения.

Почему это?




Links