为多种格式创建一个应用程序布局

时间:2011-01-14 11:34:19

标签: ruby-on-rails

我正在开发一个Rails应用程序,该应用程序声明了一个适用于iPhone和Android的移动格式,并为移动设备提供show.mobile.haml,为web提供show.html.haml(例如)。

移动请求格式显然使用application.mobile.haml,而web使用application.html.haml - 但两种布局都相同,只有视图不同。

我的问题是 - 如何为移动和html请求格式使用单一应用程序布局?已经挖掘了Rails API文档,似乎找不到明显的解决方案。

1 个答案:

答案 0 :(得分:0)

你不需要做任何事情。当您向网址添加扩展程序时,会自动执行此操作。如果您转到 /controller/action.mobile ,将会呈现 action.mobile.haml 视图。如果您转到 /controller/action.html ,将会呈现 action.html.haml 视图。

此行为由格式参数管理(您可以在路径文件中看到此信息)。因此 /controller/action.mobile / controller / action?format = mobile 相同。

当然,有时你会希望你的行为根据当前的格式表现得不同。支持使用respond_to和respond_with方法。有关这些的更多信息可以在here找到。