【发布时间】:2010-11-04 07:44:49
【问题描述】:
默认 Rails 将呈现 404.html,然后它认为错误 404 是合适的。但是,我想通过自定义页面制作它。请建议正确的方法。
【问题讨论】:
标签: ruby-on-rails ruby rescue
默认 Rails 将呈现 404.html,然后它认为错误 404 是合适的。但是,我想通过自定义页面制作它。请建议正确的方法。
【问题讨论】:
标签: ruby-on-rails ruby rescue
这个答案出奇地难找。
如果您需要静态页面,请编辑 404.html。完成。
如果你想要一个动态页面,那么:
在 config/routes.rb 中:
match '*not_found', to: 'errors#error_404' unless Rails.application.config.consider_all_requests_local
注释掉unless 子句以在本地开发机器上测试404页面。
生成一堆文件:
rails generate controller errors error_404
编辑views/errors/error_404.html.erb 进行自定义。
这适用于 Rails 3.1 和 3.2.2。
【讨论】:
你可以使用render_404 monkey patching.
或者,您可以在路由文件的底部设置一个默认路由,该路由将转到返回 404 状态代码的操作。
理想情况下,如果您不想在 404 中添加任何自定义代码,您只需编辑静态 404.html,这是最简单的。
【讨论】:
根据您的需要,我们的 gem 可能会有所帮助:http://github.com/hedgeyedev/snow
【讨论】: