method
failsafe_response_body
v2.1.0 -
Show latest stable
-
1 note -
Class: ActionController::Dispatcher
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3 (0)
- 2.1.0 (0)
- 2.2.1 (0)
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
Register or
log in
to add new notes.
kieran -
July 28, 2008 - (<= 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