我在控制器error404
中创建了一个名为PagesController
的操作。如果出现以下情况,我想显示此操作:
我该如何做到这一点?
我尝试按照此页面Show a 404 instead of 500 in Rails上的说明操作,但这似乎只适用于第一种情况。
感谢您的帮助。 :)
答案 0 :(得分:0)
我认为如果您的控制器中的操作不存在且您的控制器是由于脚手架生成,那么默认情况下它会转到控制器的“show”方法。
对于Ex;: - http://www.domain.com/controller_name/invalid_action_name
此处“controller_name”是有效的Controller。 &安培;
“invalid_action_name”是无效的操作。
然后默认情况下,它转到“controller_name”的“show”方法&将“invalid_action_name”视为params [:id]。
所以在show方法中你可以解决错误并显示有效的错误页面,例如“找不到记录”或“错误404”
EDITED 您必须在/config/routes.rb中为新方法名称添加路由,如下所示
map.resources :controller_name, :collection=>{:show=>:get}
每次更改此文件时都不要忘记重启服务器。