我有以下代码行,它有条件地重定向我想包含在我的 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
这将重定向到some_controller
HTML 请求之后,并在 JSON 请求之后呈现 JSON 数据。
您的意思是通过 HTTP 请求格式的分支逻辑。
respond_to do |format|
format.html {your_html_logic }
format.json { your_json_logic }
end