web-dev-qa-db-fra.com

Renvoyer un code d'état http spécifique dans Rails

Comment renvoyez-vous Service 503 non disponible dans Rails pour toute l'application?

De plus, comment faites-vous la même chose pour des contrôleurs spécifiques?

70
Sathish Manohar

Pour l'ensemble de l'application:

# ApplicationController
before_filter :return_unavailable_status

private
  def return_unavailable_status
    render :nothing => true, :status => :service_unavailable
  end

Si vous vouliez une page d'erreur personnalisée, vous pourriez faire:

render 'custom_unavailable_page', :status => :service_unavailable    

Si vous ne le souhaitez pas pour des contrôleurs spécifiques:

# SomeController
skip_before_filter :return_unavailable_status
73
iwasrobbed

Vous pouvez utiliser head

head 503
# or
head :service_unavailable
95
Sergio Tulentsev