【问题标题】:How to return HTTP 204 in a Rails controller如何在 Rails 控制器中返回 HTTP 204
【发布时间】:2018-07-06 11:58:12
【问题描述】:

这似乎是基本的,但我是 Ruby/Rails 初学者。我只需要在控制器中返回 HTTP 204。 会

respond_to do |format|
  format.html  
end

返回 204?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:
    head :no_content
    

    使用 Rails 3.2.x、4.x 测试。它会导致控制器方法以 204 No Content HTTP 状态代码进行响应。

    在名为 foobar 的控制器方法中使用它的示例:

    def foobar
      head :no_content
    end
    

    【讨论】:

      【解决方案2】:

      head方法:

      返回没有内容的响应(仅是标题)。选项 参数被解释为标题名称和值的哈希。

      【讨论】:

      • 谢谢迈克尔。 head :ok 用于 HTTP 200,head :created 用于 201,但我找不到应该与 head 一起使用以返回 204 的参数。
      • 我想我找到了:head :no_content 或 head 204。谢谢!
      • 如果这回答了您的问题,请通过勾选投票箭头下方的小标记来接受答案,以便其他用户知道此问题已解决。
      【解决方案3】:

      如果你根本不想渲染任何东西,你可以这样做:

      render :nothing => true, :status => 204
      

      或者像这样:

      render :nothing => true, :status => 204 and return
      

      或者您可以将:status => 204 部分与任何其他渲染命令一起使用

      【讨论】:

      • 有一张旧的 Rails 票不鼓励这样做,但从那以后情况可能会发生变化:rails.lighthouseapp.com/projects/8994/tickets/…
      • @Michael Kohl:感谢您提供此链接,我不知道这一点。据我了解,这更多是样式或可读代码的问题,使用head 而不是render :nothing 应该更明确,正如Ruby On Rails Guide 所解释的那样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2017-08-19
      • 2020-03-22
      相关资源
      最近更新 更多