How do you return 503 Service Unavailable in Rails for the entire application?
Also, how do you do the same for specific controllers?
How do you return 503 Service Unavailable in Rails for the entire application?
Also, how do you do the same for specific controllers?
For the entire application:
# ApplicationController
before_filter :return_unavailable_status
private
def return_unavailable_status
render :nothing => true, :status => :service_unavailable
end
If you wanted a custom error page, you could do:
render 'custom_unavailable_page', :status => :service_unavailable
If you don't want it for specific controllers:
# SomeController
skip_before_filter :return_unavailable_status
You can use head
head 503
# or
head :service_unavailable
The following works for me:
format.any { render :json => {:response => 'Unable to authenticate' },:status => 401 }
The :response
for the HTML response just in case it's accessed from the browser.
The render head 503 does not seem to be working with the above statement.