Ruby-on-Rails, как показать исключения, пойманные AbstractController :: ActionNotFound? - PullRequest
2 голосов
/ 20 июля 2011

У меня есть веб-приложение, работающее на Ruby (1.8.7) и Rails (3.0.0).

Я уже несколько раз замечал, что регистрируется AbstractController::ActionNotFound ошибок и возвращается 404 ответа, когда основная проблема на самом деле не связана с тем, что действие не найдено как таковое (что, по-видимому, подразумевает мне, что вы просто не определили маршрут для действия).

Итак, мой вопрос: как можно заставить rails регистрировать исходное исключение вместо того, чтобы потреблять его и выплевывать в общем бесполезное сообщение? При поиске на форумах кажется, что это пустое сообщение об ошибке является источником большого разочарования.

Например, недавняя ошибка:

AbstractController :: ActionNotFound (Не удалось найти действие upload_image для DealsController)

Что на самом деле было вызвано этим (я использовал javascript для создания формы в DOM вместо того, чтобы писать erb с помощью rails form_tag, который, конечно, не проходил проверку встроенного в Rails токена CSRF):

ActionController :: InvalidAuthenticityToken (ActionController :: InvalidAuthenticityToken)

Обратите внимание, что это всего лишь пример того, какие проблемы может скрывать ActionNotFound. Я не заинтересован в решении этой конкретной проблемы (решена), но на самом деле это общий случай того, как показывать более существенные сообщения об ошибках вместо ActionNotFound.

Спасибо!

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