所以,當一個產生scaffodl,控制器會自動創建這些塊(?)這樣有人可以向我解釋什麼respond_to呢? (Rails)的
respond_to do |format|
format.html
format.xml { render :xml => @c }
end
這究竟做,怎麼就具有format.html
和format.xml
?每個人做什麼?
所以,當一個產生scaffodl,控制器會自動創建這些塊(?)這樣有人可以向我解釋什麼respond_to呢? (Rails)的
respond_to do |format|
format.html
format.xml { render :xml => @c }
end
這究竟做,怎麼就具有format.html
和format.xml
?每個人做什麼?
它定義當前動作將響應各種格式(動作的內容可以以許多方式呈現,而不僅僅是普通的舊HTML)。
/my/path/to/action.html
,它將呈現HTML(從模板);/my/path/to/action.xml
,它將使用{ render :xml => @c }
呈現XML。 XML將由Rails通過在@c
變量上調用to_xml
方法生成;/my/path/to/action.json
,則會發出404錯誤。Rails使用由Accept
頁眉或格式來確定該請求的MIME type
(/controller/action/5.xml
; /controller/action/5.html
; /controller/action/5.json
;等)來確定映射到所請求的URL的控制器動作的響應格式。
這種方式rails可以自動爲不同的內容格式呈現許多類型的請求到相同的控制器操作。