如何为整个应用程序返回503服务在Rails中不可用?
另外,您如何对特定控制器执行相同操作?
如何为整个应用程序返回503服务在Rails中不可用?
另外,您如何对特定控制器执行相同操作?
Answers:
对于整个应用程序:
# 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
custom_unavailable_page
将是您将呈现的视图文件的名称。
:nothing
不推荐使用该选项,并将在Rails 5.1中将其删除。使用head
方法对空的回应主体进行回应
您可以使用 head
head 503
# or
head :service_unavailable
:nothing
不推荐使用该选项,并将在Rails 5.1中将其删除。使用head
方法对空的回应主体进行回应
head
,如果您想保留后代的原始答案,请在下面输入“原始答案”或类似内容。我认为我们都可以同意这head
是要走的路,特别是因为render nothing: true
当前的Rails版本已弃用。
以下对我有用:
format.any { render :json => {:response => 'Unable to authenticate' },:status => 401 }
在:response
对HTML响应以防万一它是从浏览器访问。
渲染头503似乎不适用于以上陈述。
render "custom_unavailable_page"
而不是render :nothing => true