88 votes

Renvoyer un code de statut http spécifique dans Rails

Comment renvoyez-vous le service 503 indisponible dans Rails pour toute l'application?

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

114voto

Sergio Tulentsev Points 82783

Vous pouvez utiliser :status

 render :status => 503
 

Vous pouvez le faire globalement en le mettant dans ApplicationController

 before_filter :render_unavailable

def render_unavailable
  render :nothing => true, :status => 503
end
 

89voto

iWasRobbed Points 26926

Pour toute l'application:

 # ApplicationController
before_filter :return_unavailable_status

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

Si vous voulez une page d'erreur personnalisée, vous pouvez 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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X