Rails HTTP 204没有呈现模板
问题描述:
我的应用程序有一个搜索页面,其结果可以(显然)有时为零。当页面返回结果时,我想使用HTTP 200,当没有结果时,我希望页面返回HTTP 204.Rails 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
您需要在此处添加一些代码,以说明如何分配204代码以及可能无法使用的代码。 – tadman
@tadman - 杜,谢谢。完成。 – CDub
你是否在你的'log/development.log'中看到204,或者它在那里是错误的代码? – tadman