2013-10-07 16 views
0

我有以下代碼行,它有條件地重定向,我想包括在我的Rails控制器中,並只在請求是HTML請求的情況下執行。只有在HTML請求的情況下,我該如何執行Rails控制器邏輯?

我想跳過在該請求是JSON的情況下,這邏輯。在所有控制器操作之前聲明,如何與respond_to :html, :json方法一起執行此操作?

redirect_to some_controller and return if @pages.empty? 

回答

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 
0

你的意思是通過HTTP請求格式的分支邏輯。

respond_to do |format| 
    format.html {your_html_logic } 
    format.json { your_json_logic } 
end 
1

您應該使用respond_to塊:

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

這將一個HTML請求後重定向到some_controller,和渲染後的JSON數據JSON請求。

相關問題