2011-01-14 51 views
0

我正在開發一個Rails應用程序,該應用程序爲iPhone和Android聲明移動格式,併爲移動設備提供show.mobile.haml,爲web提供show.html.haml(例如)。爲多種格式創建一個應用程序佈局

移動請求格式顯然使用application.mobile.haml,而web使用application.html.haml - 但兩種佈局相同,只是視圖不同。

我的問題是 - 如何爲移動和html請求格式使用單個應用程序佈局?已經通過Rails API文檔挖掘出來,似乎無法找到明顯的解決方案。

回答

0

你不需要做任何事情。當您向您的網址添加擴展程序時,會自動執行此操作。如果你去/controller/action.mobileaction.mobile.haml視圖將被渲染。如果您轉到/controller/action.html,則會呈現action.html.haml視圖。

此行爲由格式參數管理(您可以在您的路由文件中看到此內容)。因此/controller/action.mobile/controller/action?format = mobile相同。

當然,有時你會希望你的行爲根據當前的格式而有所不同。支持使用respond_to和respond_with方法。有關這些的更多信息可以發現here

+0

我認爲Dave正試圖避免同時擁有application.mobile和application.html佈局文件?你能欺騙一個包括其他? –

+0

對於這裏看看:http://stackoverflow.com/questions/339130/how-do-i-render-a-partial-of-a-different-format-in-rails –

+0

非常感謝Stefaan。是的,約翰是對的。我理解你的答案 - 我有一組不同的視圖,例如,我有show.html.haml和show.mobile haml。但是應用程序佈局在application.mobile.haml和application.html.haml中是重複的,我希望爲移動和html請求格式提供相同的佈局。我不認爲這個作弊,只是想幹掉代碼。我不想爲所有格式的服務器提供相同的應用佈局,只需:mobile和:web。 – buddhamagnet

相關問題