web-dev-qa-db-ja.com

特定のhttpステータスコードをRailsで返します

どのようにして503 Service Unavailable in Railsをアプリケーション全体に返しますか?

また、特定のコントローラーに対して同じことをどのように行いますか?

70
Sathish Manohar

アプリケーション全体の場合:

# ApplicationController
before_filter :return_unavailable_status

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

カスタムエラーページが必要な場合は、次のことができます。

render 'custom_unavailable_page', :status => :service_unavailable    

特定のコントローラーに使用したくない場合:

# SomeController
skip_before_filter :return_unavailable_status
73
iwasrobbed

headを使用できます

head 503
# or
head :service_unavailable
95