Rails HTTP 204不呈现模板

时间:2017-03-02 02:06:51

标签: ruby-on-rails ruby ruby-on-rails-4

我的应用程序有一个搜索页面,其结果可能(显然)有时为零。当页面返回结果时,我想使用HTTP 200,当没有结果时,我希望页面返回HTTP 204。

此过程适用于初始加载,即同步调用 - 如果没有结果,则页面呈现正确,表示没有结果,HTTP状态为204.

但是,如果我执行通过HTML返回结果的搜索,然后使用我的搜索过滤器来获取已知的空结果集,则会触发AJAX调用,命中控制器,并且我看到日志返回HTTP 204,但是相应的JS模板(重新呈现页面)永远不会加载(例如,我继续看到我设置的微调器,以显示工作正在完成)。

如果HTTP状态代码为204,是否存在阻止Rails呈现AJAX模板的内容?

注意:该应用程序正常运行,没有结果,并且没有使用status: :no_content指令。但是没有结果的200 HTTP状态对我来说似乎不正确。

修改 - 对应代码

在我过滤结果后,我对它们进行了分页(使用will_paginate)。我的控制器方法的最后一行是:

render :index, status: @results.total_entries.zero? ? :no_content : :ok

1 个答案:

答案 0 :(得分:0)

在rails 5中,您需要手动指定响应格式,以防http 204: No content

您可以找到更多解释here

相关问题