ruby-on-rails - 在移动设备上使用替代的Rails布局,但 View 相同

标签 ruby-on-rails layout mobile views

我在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/

相关文章:

ios - 如何在 ios 应用程序商店的 Release模式下构建 React Native 应用程序?

ruby-on-rails - 呈现启动更新的操作

mysql - Rails session 存储应该使用什么方法?如何决定?

javascript - Vue.js 和 Rails 的数据库保存问题

android - 单个列表上的不同 View (Android)

Android输入框背景消失

ruby-on-rails - 如何正确编写具有 N-N 关系的嵌套表单

java - 创建 JPanel

java - 如何防止 Java Swing BoxLayout 中的 JTextFields 扩展?

html - 响应式网站 - 大小问题?