method
failsafe_response_body
v2.0.3 -
Show latest stable
- Class:
ActionController::Dispatcher
failsafe_response_body(status)private
No documentation available.
# File actionpack/lib/action_controller/dispatcher.rb, line 63
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 1Note
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