81

如何为整个应用程序返回503 Service Unavailable in Rails?

另外,你如何为特定的控制器做同样的事情?

4

3 回答 3

107

您可以使用head

head 503
# or
head :service_unavailable
于 2012-01-17T06:13:53.383 回答
86

对于整个应用程序:

# 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
于 2012-01-17T06:13:16.130 回答
2

以下对我有用:

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

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

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

于 2017-04-20T20:14:45.160 回答