生成404错误

生成404错误

问题描述:

我在控制器PagesController中创建了一个名为error404的操作。我想显示这个动作,如果发生以下情况:生成404错误

  1. 在URL的控制器不存在
  2. 在URL的动作不存在

我怎样才能做到这一点?

我试图按照此页上的说明Show a 404 instead of 500 in Rails,但似乎只适用于第一种情况。

感谢您的帮助。 :)

我想如果您的控制器中的操作不存在,并且您的控制器是由脚手架生成的,那么默认情况下它会转到控制器的'show'方法。

对于防爆; - http://www.domain.com/controller_name/invalid_action_name

这里你 “CONTROLLER_NAME” 是有效的控制。 &

“invalid_action_name”为无效操作。

然后在默认情况下,它将params [:id]视为“invalid_action_name”的“controller_name”&的'show'方法。

所以在表演方法,你可以拯救错误,可显示有效的错误页面,如“记录找不到”或“错误404”

EDITED 你必须添加路线在新的方法名的/config/routes.rb如下

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

不要忘记每当你改变这个文件时重启服务器。

+0

谢谢。我对RoR很陌生,不太明白。 我创建了一个名为“show”的新动作。当我点击invalid_action_name时,它没有进入动作“显示”。它只是给我...... 未知的行动 对invalid_action_name没有响应。操作:xxxx,xxxx,xxx 是我犯了什么错误? – 2010-04-26 11:05:21

+0

你必须添加路由到你的routes.rb。请查看我编辑的答案。 – Salil 2010-04-26 11:27:48

+0

oops。它不适合我。但感谢您的帮助。 :) – 2010-04-26 12:36:14