method
failsafe_response_body
Register or
log in
to add new notes.
kieran -
July 28, 2008 - (v2.0.0 - v2.1.0)
0 thanks
Bug that looks for "500 .html" rather than "500.html"
There is a very small bug in this method of Rails that causes error pages you change in public/ not to be shown, because Rails looks for “404 .html” and “500 .html” (note the space). The fix is simple.
#{status.to_s[0..3]}
needs to become
#{status.to_s[0...3]}
If you’re like me and don’t want to edit Rails itself, at the bottom of environment.rb, stick some code that overwrites this method to fix the bug. We have the following:
module ActionController class Dispatcher class << self private def failsafe_response_body(status) error_path = "#{error_file_path}/#{status.to_s[0...3]}.html" if File.exist?(error_path) File.read(error_path) else "<html><body><h1>#{status}</h1></body></html>" end end end end end


