我的应用程序有一个搜索页面,其结果可能(显然)有时为零。当页面返回结果时,我想使用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