Когда Rails обнаруживает отсутствующий файл, он запускает render_optional_error_file (404) со статусом 404 на контроллере приложения, но пропускает все фильтры, предположительно, так как ошибка уже произошла.
Я добавил метод run_filters длямой контроллер приложения, а затем вызовите его из файла render_optional_error_file:
def run_filters
#run filters or whatever
end
def render_optional_error_file(status)
run_filters
render "shared/error", :status => status
end
Вы также можете проверить это поведение на своем сервере разработки, включив в свой контроллер приложений следующее:
alias_method :rescue_action_locally, :rescue_action_in_public