在移动设备上使用备用Rails布局,但视图相同

Kel*_*lly 8 mobile layout views ruby-on-rails

我一直在移动设备railscast中使用相同的策略,以便在移动浏览器中为我的网站提供备用布局.

检测到移动浏览器时,request.format设置为:mobile,我将其定义为mime类型.我为移动设备创建了一个新的布局.如果我提供移动视图(例如show.mobile.haml),移动视图和布局都会在移动设备上使用,一切都很好.

问题是,我不想创建全新的视图,它只是我想要改变的布局.如果我没有创建适当命名的视图,则永远不会使用移动布局.因此,我只能设法在移动设备上同时更改或不更改.

我在这里错过了什么?我怎样才能得到钢轨换出刚刚布局时,我已经有了一个移动用户?

tyb*_*103 18

假设您已经mobile_device?从railscast 添加了该方法,那么只需将以下内容添加到application_controller.rb:

  layout :which_layout
  def which_layout
    mobile_device? ? 'mobile' : 'application'
  end
Run Code Online (Sandbox Code Playgroud)

请务必在app/views/layouts中创建mobile.html.erb文件

由于您要呈现相同的视图,因此不必担心设置request.format.