Генерировать ошибку 404 - PullRequest
0 голосов
/ 26 апреля 2010

Я создал действие с именем error404 в контроллере PagesController. Я хотел бы отобразить это действие, если произошла следующая ситуация:

  1. Контроллер в URL не существует
  2. Действие в URL не существует

Как мне это сделать?

Я пытался следовать инструкциям на этой странице, Показывать 404 вместо 500 в Rails , но, похоже, это работает только в первой ситуации.

Спасибо за помощь. :)

1 Ответ

0 голосов
/ 26 апреля 2010

Я думаю, что если действие в вашем контроллере не существует, и ваш контроллер вызван генерацией каркаса, то по умолчанию он переходит к методу 'show' контроллера.

Например: - http://www.domain.com/controller_name/invalid_action_name

Здесь ваше «имя_контроллера» является действительным контроллером. &

"invalid_action_name" является недействительным действием.

Затем по умолчанию он переходит к методу show в "controller_name" и рассматривает "invalid_action_name" как params [: id].

, поэтому в методе show вы можете спасти ошибку и показать действительную страницу ошибки, такую ​​как «Запись не найдена» или «Ошибка 404»

EDITED Вы должны добавить маршрут для нового имени метода в ваш /config/routes.rb следующим образом

map.resources :controller_name, :collection=>{:show=>:get}

не забудьте перезапустить сервер при каждом изменении этого файла.

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