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

发布于 2024-12-27 12:27:28 字数 97 浏览 1 评论 0原文

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

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

How do you return 503 Service Unavailable in Rails for the entire application?

Also, how do you do the same for specific controllers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

染墨丶若流云 2025-01-03 12:27:28

您可以使用head

head 503
# or
head :service_unavailable

You can use head

head 503
# or
head :service_unavailable
我很坚强 2025-01-03 12:27:28

对于整个应用程序:

# 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

For the entire application:

# ApplicationController
before_filter :return_unavailable_status

private
  def return_unavailable_status
    render :nothing => true, :status => :service_unavailable
  end

If you wanted a custom error page, you could do:

render 'custom_unavailable_page', :status => :service_unavailable    

If you don't want it for specific controllers:

# SomeController
skip_before_filter :return_unavailable_status
情魔剑神 2025-01-03 12:27:28

以下对我有用:

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

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

渲染头503似乎没有按照上面的语句工作。

The following works for me:

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

The :response for the HTML response just in case it's accessed from the browser.

The render head 503 does not seem to be working with the above statement.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文