我想使用开发环境在我的Rails应用程序中测试500个错误页面。如何在rails开发环境中测试500.html?
我已经在config/environments/development.rb
尝试这样:
config.action_controller.consider_all_requests_local = false
但是,这似乎并没有产生任何影响。
我想使用开发环境在我的Rails应用程序中测试500个错误页面。如何在rails开发环境中测试500.html?
我已经在config/environments/development.rb
尝试这样:
config.action_controller.consider_all_requests_local = false
但是,这似乎并没有产生任何影响。
您可以:
local_request?
在application_controller.rb
喜欢的东西:def local_request? false end
第二个将停止处理来自本地主机和127.0.0.1的请求,因为本地请求与consider_all_requests_local = false
结合应该向您显示您的500.html页面。
我发现要做到这一点,到目前为止的唯一方法是在development.rb
config.consider_all_requests_local = false
然后设置访问网址中使用我的本地IP地址:http://192.168.1.135:3000/blah
其他设置则提到唐似乎没有任何效果。
您应该将以下行添加到application_controller,
unless ActionController::Base.consider_all_requests_local
rescue_from Exception, :with => :render_500
if ActiveRecord::RecordNotFound
rescue_from Exception, :with => :render_404
end
rescue_from ActionController::RoutingError, :with => :render_404
rescue_from ActionController::UnknownController, :with => :render_404
rescue_from ActionController::UnknownAction, :with => :render_404
end
然后尝试用下面的设置运行。
config.action_controller.consider_all_requests_local = false
在配置/环境/ development.rb:
它将工作。请不要忘记在application_controller.rb中编写函数来为每个错误消息渲染布局。
只是做了http://localhost:3000/404或/ 500,以访问这些页面,看看他们是什么样子。
对于那些只想测试这些页面设计的人来说,这是最短和最好的答案 – 2016-01-30 17:46:58
我同意你的意见。 – 2016-01-31 22:48:59
除了设置: config.consider_all_requests_local = false
我还需要设置: config.action_dispatch.show_exceptions = true
,如果你只是想迫使一个500错误,看看是什么样子,你可以只添加这一个观点:
HAML例如:
= render :partial => "broken", :status => 500
添加一些解释和回答这个答案如何帮助OP在解决当前问题 – 2017-01-18 01:07:38
会改变你的环境中生产的帮助吗? – Nuby 2011-03-10 18:00:40
我个人认为最好切换到生产环境来测试错误页面。如果您在开发过程中始终禁用Rails的内置错误页面,您可能会更难以看到有价值的调试信息。 – 2013-11-20 02:43:27