2013-04-10 97 views
0
respond_to do |format| 
    format.html { render :html => @something } 
    format.json { render :json => @something } 
    format.xml { render :xml => @something } 
end 

這裏我們有三種不同的格式:html,json,xml。那麼實際返回哪一個?我們有三個以.html,.xml,.json結尾的不同文件嗎?或者換句話說,respond_to渲染所有三個html,json,xml文件?respond_to實際返回的是什麼?

回答

0

respond_to可以根據當前請求呈現三個中的每一個。正確的迴應不是從respond_to返回的,而是實際呈現的內容。 你可以找到完整的解釋here

1

respond_to是連接到控制器類(或更確切地說,它的超類)的Rails輔助方法。它引用將發送給View的響應(將發送到瀏覽器)。

您示例中的塊通過傳遞塊中的'格式'參數來格式化數據,以便每當瀏覽器發出對html或json數據的請求時從控制器發送到視圖。 in rails你也可以這樣寫

class PostsController < ApplicationController 
    respond_to :html, :xml, :js 

    def index 
    @posts = Post.all 

    respond_with(@posts) 
    end 
end 
相關問題