我使用exception_handler gem制作自定义404页面。当我转到我网站上的404页面时,它显示未找到,但如何自定义此页面?我尝试更改路由,make errors_controller和not_found视图。
application.rb中
config.exceptions_app = self.routes
的routes.rb
get "/404", :to => "errors#not_found"
get "/422", :to => "errors#unacceptable"
get "/500", :to => "errors#internal_error"
errors_controller.rb
class ErrorsController < ApplicationController
def not_found
render :status => 404 end
def unacceptable
render :status => 422 end
def internal_error
render :status => 500 end
end
应用/视图/错误/ not_found.html.erb
<label> TEST 404 Label </label>
答案 0 :(得分:1)
您很可能已正确配置这些页面并且代码可以正常工作,但不适用于您正在使用的环境。在目录config/environments
中您应该有三个文件:development, test, production
。当您在开发中工作时,它不会渲染您已创建的页面,因为它违反了Rails错误。您应该检查config/environments/development.rb
并查看您设置的config.consider_all_requests_local
。您可以将其更改为false
,重置路由器并能够查看错误页面,然后在继续进一步开发时将其交换回true
。请注意,您使用的实现看起来像是exception_handler gem的替代方案,并且会处理错误而不是该gem。
您可以在Rails指南中找到更多信息:http://guides.rubyonrails.org/configuring.html#rails-general-configuration
答案 1 :(得分:1)
我忘了运行rails g exception_handler:views
这会在我的项目文件中生成所有视图,现在我可以根据自己的喜好自定义它们。