RoR: ActiveRecord.friendly.find () вызывает перенаправление - PullRequest
0 голосов
/ 20 марта 2019

Я поддерживаю приложение на RoR. Одна часть этого я не понимаю. Есть модель:

class Country < ActiveRecord::Base
  extend FriendlyId
  friendly_id :prefix, :use => [:finders]
...
end

Если я вызываю Country.find («значение») или Country.friendly.find («значение») со значением, которого нет в базе данных, вызов немедленно вызывает HTTP 302. Если я изменю его на Country.find_by (префикс: «значение»), он будет работать как положено, за исключением того, что он возвращает ноль для не найденных значений.

Документация говорит, что .find () должен вызывать исключение ActiveRecord :: RecordNotFound. Но этого не происходит в моем случае.

Я довольно новичок в RoR, так что, вероятно, я упустил что-то очевидное. Будем признательны, если вы покажете мне направление.

1 Ответ

1 голос
/ 20 марта 2019

Прежде всего, как вы сказали find поднять ActiveRecord::RecordNotFound, если запись с заданным идентификатором не найдена, где find_by просто возвращает nil, если запись с данным атрибутом (ами) ненайдено.

Тем не менее, я думаю, что в вашем приложении где-то есть вызов rescue_from или что-то подобное, может быть, ApplicationController, который перенаправляет при перехвате RecordNotFound.

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