У меня есть веб-приложение, работающее на 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.
Спасибо!