我想使用开发环境在我的Rails应用程序中测试500个错误页面。
我已经在config/environments/development.rb
中尝试了这个:
config.action_controller.consider_all_requests_local = false
但这似乎没有任何效果。
答案 0 :(得分:72)
到目前为止,我发现这样做的唯一方法是设置development.rb
config.consider_all_requests_local = false
然后使用我的本地IP地址访问网址:http://192.168.1.135:3000/blah
提到的其他设置似乎没有任何效果。
答案 1 :(得分:25)
所提出的解决方案都没有在我的Rails 3应用程序中运行。对我来说,快速而肮脏的解决方案是直接点击错误页面以查看呈现的HTML。例如,
http://0.0.0.0:3000/404.html
http://0.0.0.0:3000/500.html
答案 2 :(得分:20)
只需执行http://localhost:3000/404或/ 500即可访问这些页面,看看它们的外观。
答案 3 :(得分:12)
你可以:
local_request?
中的application_controller.rb
覆盖为:def local_request? false end
第二个将停止rails处理来自localhost和127.0.0.1的请求,因为与consider_all_requests_local = false
结合的本地请求应该显示您的500.html页面。
答案 4 :(得分:4)
您应该将以下行添加到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 / environments / development.rb: 中的 config.action_controller.consider_all_requests_local = false
它会起作用。请不要忘记在 application_controller.rb 中编写函数来呈现每个错误消息的布局。
答案 5 :(得分:4)
除了设置:
config.consider_all_requests_local = false
我还需要设置:
config.action_dispatch.show_exceptions = true
答案 6 :(得分:0)
我认为正确的设置是:
config.action_view.debug_rjs = false
为什么它仍然被标记为rjs
并不完全清楚。
答案 7 :(得分:0)
如果您只想强制500错误以查看它的外观,您只需将其添加到视图中:
haml示例:
= render :partial => "broken", :status => 500