在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似乎没有与上述语句一起工作。

  • 如何使用Apache HttpClient POST JSON请求?
  • ASP.NET Asp.Net MVC中的HTTPerror handling程序(RC 5)
  • 应用程序如何使用端口80 / HTTP而不与浏览器冲突?
  • Flask – POST错误405方法不允许
  • HTTP header Pragma:公开的意思是什么?
  • HTTP“Content-Type”头的所有可能的值是什么?
  • HTTP状态码0是什么意思
  • 什么是HTTP头中的“Content-Length”字段?
  • 多部分/forms数据的边界是什么?
  • 在Java中使用JSON的HTTP POST
  • 从HttpWebRequest和HttpWebResponse获取Http状态代码(200,301,404等)