次のコード行があります。これは、Rails コントローラーに含めて、要求が HTML 要求の場合にのみ実行する条件付きリダイレクトを行います。
リクエストが JSON の場合は、このロジックをスキップしたいと思います。respond_to :html, :json
すべてのコントローラー アクションの前に宣言されたメソッドと組み合わせてこれを行うにはどうすればよいでしょうか。
redirect_to some_controller and return if @pages.empty?
次のコード行があります。これは、Rails コントローラーに含めて、要求が HTML 要求の場合にのみ実行する条件付きリダイレクトを行います。
リクエストが JSON の場合は、このロジックをスキップしたいと思います。respond_to :html, :json
すべてのコントローラー アクションの前に宣言されたメソッドと組み合わせてこれを行うにはどうすればよいでしょうか。
redirect_to some_controller and return if @pages.empty?
次のようなものが必要です。
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
respond_to
次のブロックを使用する必要があります。
respond_to do |format|
format.html { redirect_to some_controller }
format.json { render json: @data }
end
これは、HTML リクエストの後にリダイレクトしsome_controller
、JSON リクエストの後に JSON データをレンダリングします。
HTTPリクエスト形式でロジックを分岐するだけです。
respond_to do |format|
format.html {your_html_logic }
format.json { your_json_logic }
end