我的應用程序有一個搜索頁面,其結果可以(顯然)有時爲零。當頁面返回結果時,我想使用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