作者ihower (好2ˇ)
看板Ruby
标题Re: [RoR ] 错误连结
时间Thu Dec 6 06:43:51 2007
※ 引述《janyfor (你哪位ㄚ)》之铭言:
: 如果使用者打入了不正确的URL
: 该怎麽告知无此页面
: 在每个地方加判断太麻烦了QQ
: 例如: http://localhost:3000/new
: ↑没有 new 这个 controller
: http://localhost:3000/news/no
: ↑没有 no 这个 action
: http://localhost:3000/news/show/66
: ↑没有 66 这个 id
: 该怎麽办呢?
你这里有两种情况:
1. 没有这个 route (i.e. 没有这个controller或action)
请在 routes.rb 最下面加入如
map.connect '*anything', :controller => 'lobby', :action => 'page_not_found'
这样就会自动导去你自订的controler跟action
2. 找不到id, 这时其实Rails是丢 RecordNotFound exception
请装 exception_notification 这个官方 plugin,
他会帮你补捉所有 exception (only in production mode)
如想自订 render 页面, 在 controller/application.rb 里写过
render_404 跟 render_500 就可以了
例如我这样写
def render_404
respond_to do |type|
type.html { render :template => 'common/404', :status => "404 Not Found" }
type.all { render :nothing => true, :status => "404 Not Found" }
end
end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.232.59
※ 编辑: ihower 来自: 61.216.232.59 (12/06 06:45)
1F:推 janyfor:多谢喔 我试试看 12/06 14:47
2F:推 godfat:除了板友,好久没 m 了 @@ 12/06 22:52