我在Mobile Devices railscast中一直使用相同的策略,以在移动浏览器中为我的网站提供备用布局。
当检测到移动浏览器时,request.format设置为:mobile,我将其定义为mime类型。
我为移动设备创建了新的布局。
如果我提供移动 View (例如show.mobile.haml),则移动 View 和布局都可在移动设备上使用,并且一切正常。
问题是,我不想创建全新的 View ,这只是我要更改的布局。如果我没有创建适当命名的 View ,则永远不会使用移动版式。因此,我只能在移动设备上同时进行更改或两者都不更改。
我在这里想念什么?当我有一个移动用户时,如何才能使Rails仅交换布局?
最佳答案
假设您已经从railscasts添加了mobile_device?
方法,然后只需将以下内容添加到application_controller.rb中:
layout :which_layout
def which_layout
mobile_device? ? 'mobile' : 'application'
end
确保在app/views/layouts中创建mobile.html.erb文件
由于您要呈现相同的 View ,因此不必担心设置request.format。
关于ruby-on-rails - 在移动设备上使用替代的Rails布局,但 View 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048290/