Question

How do you return 503 Service Unavailable in Rails for the entire application?

Also, how do you do the same for specific controllers?

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top