在Rails中返回特定的http状态代码

时间:2012-01-17 05:59:45

标签: ruby-on-rails http http-status-codes http-status-code-503

如何在Rails中为整个应用程序返回 503 Service Unavailable

另外,如何为特定控制器执行相同的操作?

3 个答案:

答案 0 :(得分:90)

您可以使用head

head 503
# or
head :service_unavailable

答案 1 :(得分:72)

对于整个申请:

# 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

答案 2 :(得分:-1)

以下适用于我:

format.any { render :json => {:response => 'Unable to authenticate' },:status => 401  }

HTML响应的:response,以防万一从浏览器访问。

渲染头503似乎不使用上述语句。