2017-03-02 1 views
1

私のアプリケーションには検索ページがあり、結果は(明らかに)ゼロになることがあります。ページに結果が返ってきたら、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を使用して)、それらをページ付け。私のコントローラメソッドの最後の行は次のとおりです。レール5に

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

ここでは、204コードをどのように割り当てるか、それが動作しない可能性があるコードを追加する必要があります。 – tadman

+0

@tadman - duh、ありがとう。完了しました。 – CDub

+0

'log/development.log'に204が表示されていますか、それとも間違ったコードですか? – tadman

答えて

0

あなたは、http 204: No content用ケースに手動で応答形式を指定する必要があります。

さらに詳しい説明hereが見つかります。

+0

Rails 4.2.7.1を使用していますが、Rails 5は使用していません。 – CDub

関連する問題