Adding headers for specific HTTP statuses in Ruby on Rails can be easily accomplished using super
for render
.
In your app/controllers/application_controller.rb
:
def render(*args)
super.tap do
if (400..599).cover?(response.status)
response.headers['X-Custom-Error'] = '1'
end
end
end
There’s a lot you can do with this. As your application grows in complexity, using this pattern can help you communicate between your app and things like a reverse proxy.