0

次のコード行があります。これは、Rails コントローラーに含めて、要求が HTML 要求の場合にのみ実行する条件付きリダイレクトを行います。

リクエストが JSON の場合は、このロジックをスキップしたいと思います。respond_to :html, :jsonすべてのコントローラー アクションの前に宣言されたメソッドと組み合わせてこれを行うにはどうすればよいでしょうか。

redirect_to some_controller and return if @pages.empty?
4

3 に答える 3

2

次のようなものが必要です。

class SomeController < ApplicationController
  def index
    @pages = Pages.find(:all)

    respond_to do |format|
      format.html do
        redirect_to other_controller and return if @pages.empty
        # ... other logic ...
      end
      format.json { render json: @pages }
    end
  end
end
于 2013-10-07T21:51:55.580 に答える
1

respond_to次のブロックを使用する必要があります。

respond_to do |format|
  format.html { redirect_to some_controller }
  format.json { render json: @data }
end

これは、HTML リクエストの後にリダイレクトしsome_controller、JSON リクエストの後に JSON データをレンダリングします。

于 2013-10-07T21:52:31.507 に答える
0

HTTPリクエスト形式でロジックを分岐するだけです。

respond_to do |format|
  format.html {your_html_logic }
  format.json { your_json_logic  }
end
于 2013-10-07T21:51:38.173 に答える