2012-12-05 45 views

回答

2

它允許您根據用戶/調用者請求的格式對輸出進行不同的格式設置。如果您要訪問http://yourhost/controller/index.html,控制器將回應ERB模板index.html.erb(或HAML或其他)。如果您要訪問http://yourhost/controller/index.json,它將使用JSON模板index.json.erb進行響應。

這使您可以擁有一個可以準備數據的控制器操作,然後根據請求的格式選擇視圖進行渲染。

+0

請注意,您不必這樣做。如果您的網站僅爲HTML,則可以刪除您粘貼的所有代碼,然後直接轉到默認呈現,這將是HTML模板。 –

2

定義調用respond_with時默認呈現的mime類型。所以基本上,這意味着你的控制器動作可以以不同的格式命中(html,json在你的情況下),並且仍然提供數據給任何調用它的東西。這對API開發以及其他許多事情都有幫助。 例如:您想獲得所有用戶的json列表,以便使用JavaScript進行操作。你會打電話給/users.json,這會去你的user_controller#index行動,並知道要呈現所有用戶的json對象。

1

上述代碼是腳手架生成的,它提供了一種呈現控制器的*.html*.json視圖的方法,使您可以輕鬆訪問數據以實現API或Web應用程序的普通視圖。

您還可以創建XML輸出:

format.xml { render xml: @users } 

和其他格式,如PDF,DOC或根據您所使用的寶石。

查看Rails Guide Action Controller Overview瞭解更多信息。

相關問題