我有以下代碼行,它有條件地重定向,我想包括在我的Rails控制器中,並只在請求是HTML請求的情況下執行。只有在HTML請求的情況下,我該如何執行Rails控制器邏輯?
我想跳過在該請求是JSON的情況下,這邏輯。在所有控制器操作之前聲明,如何與respond_to :html, :json
方法一起執行此操作?
redirect_to some_controller and return if @pages.empty?
我有以下代碼行,它有條件地重定向,我想包括在我的Rails控制器中,並只在請求是HTML請求的情況下執行。只有在HTML請求的情況下,我該如何執行Rails控制器邏輯?
我想跳過在該請求是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
你的意思是通過HTTP請求格式的分支邏輯。
respond_to do |format|
format.html {your_html_logic }
format.json { your_json_logic }
end
您應該使用respond_to
塊:
respond_to do |format|
format.html { redirect_to some_controller }
format.json { render json: @data }
end
這將一個HTML請求後重定向到some_controller
,和渲染後的JSON數據JSON請求。