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

如何在整个应用程序中返回503服务不可用的Rails?

另外,你如何做同样的具体控制器?

对于整个应用程序:

# 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 

您可以使用:status

 render :status => 503 

你可以把它放到ApplicationController中来做到这一点

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

更新

Rails 5+

 head 503 # or head :service_unavailable 

不要把render head: 503只是头。 否则,你会得到双渲染错误。

以下为我工作:

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

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

渲染头503似乎没有与上述语句一起工作。