我想在Rails应用的开发环境下测试500错误页面。
我已经在config/environments/development.rb
中尝试过了:
config.action_controller.consider_all_requests_local = false
但是这似乎没有任何作用。
我想在Rails应用的开发环境下测试500错误页面。
我已经在config/environments/development.rb
中尝试过了:
config.action_controller.consider_all_requests_local = false
但是这似乎没有任何作用。
目前我找到的唯一方法是在development.rb
中设置:
config.consider_all_requests_local = false
然后重新启动服务器。
接着使用我的本地IP地址访问URL: http://192.168.1.135:3000/blah
其他提到的设置似乎没有任何效果。
在我的Rails 3应用程序中,没有任何一个提出的解决方案起作用。对我来说,一个快速而简单的解决办法就是直接访问错误页面以查看渲染的HTML。例如,
http://0.0.0.0:3000/404.html
http://0.0.0.0:3000/500.html
只需要访问http://localhost:3000/404或者/500,就可以查看这些页面并了解它们的外观。
你可以采用以下两种方式:
application_controller.rb
中覆盖local_request?
方法,例如:def local_request?
false
end
第二个选项将停止 Rails 将来自本地主机和 127.0.0.1 的请求视为本地请求,这与 consider_all_requests_local = false
结合使用应该显示您的 500.html 页面。
config.consider_all_requests_local = false
我还需要设置:
config.action_dispatch.show_exceptions = true
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
在 config/environments/development.rb: 中:
这将起作用。请不要忘记在 application_controller.rb 中编写函数来为每个错误消息呈现布局。
rescue_from
指令,就像http://guides.rubyonrails.org/action_controller_overview.html#the-default-500-and-404-templates中所述。 - dooleyo我认为需要调整的正确设置是这样的:
config.action_view.debug_rjs = false
为什么它仍然被标记为rjs
并不完全清楚。
如果您只是想强制出现500错误来查看其外观,您可以将以下代码添加到视图中:
Haml示例:
= render :partial => "broken", :status => 500