2013-05-21 41 views
0

我试图找出如何移动用户重定向到我的Rails应用程序等的意见,但我失去了一些东西,因为它不是从我的设备加载移动视图创建Rails应用程序的移动版本

在application_controller.rb,我说:

def check_for_mobile 
     session[:mobile_override] = params[:mobile] if params[:mobile] 
     prepare_for_mobile if mobile_device? 
    end 

    def prepare_for_mobile 
     prepend_view_path Rails.root + 'app' + 'views_mobile' 
    end 

    def mobile_device? 
     if session[:mobile_override] 
      session[:mobile_override] == "1" 
     else 
      # Season this regexp to taste. I prefer to treat iPad as non-mobile. 
      (request.user_agent =~ /(iPhone|iPod|Android|webOS|Mobile)/) && (request.user_agent !~ /iPad/) 
     end 
    end 

    helper_method :mobile_device? 

然后我有一个文件的应用程序/视图/ views_mobile /准则/ index.html.erb

当我去到索引页面上我的iPhone它不加载移动索引视图 - 我不确定我丢失了哪部分...

回答

0

除非你离开它从你的代码片断,我没有看到你打电话你打电话您的check_for_mobile方法。你可能需要添加的before_filter到application.rb中,如:

before_filter :check_for_mobile 

我也建议你看看瑞恩·贝茨Railscast关于如何将移动专用意见到您的Rails应用程序。他的策略类似于你想要实现的策略,但是通过创建“移动”MIME类型,而不是使用子文件夹来实现您的观点,他非常优雅地解决了相同的问题。看看这里:

http://railscasts.com/episodes/199-mobile-devices?view=asciicast

+0

MIME类型有效,但会使缓存复杂化,并且如果缺少视图,它将不会优雅地回落。 –

+0

如果你为分段缓存区块提供了正确的密钥(或者更好的是只使用正在被折叠到Rails 4中的cache_digest gem),那么我认为缓存不会是一个问题。 – jshkol

+0

这就解决了问题,谢谢 – tessad

3

这种问题的重定向是一个坏主意。尝试响应式设计。我会从twitter引导开始。这会给你一个脚手架系统,以适应不同的屏幕尺寸。

此外,这不是唯一的红宝石轨道问题。这是一个UI设计问题。

这里有一些好主意。

  • 不重复您的意见。这将是更难保持下去的道路。
  • 在你的CSS中使用CSS媒体查询来调整你的风格。
  • 尽量不要制作两个网站,而是一个可以弯曲和弯曲的网站。

所有这些被说我没有回答你的具体问题,而是试图告诉你,你的方式是错误的,所以我会明白,如果你不标记这是正确的。


响应式资源。

+0

好,谢谢,能做到这一点,而不是脾气暴躁的猫 – tessad

+0

插入PIC这里<---- –

+0

对不起!我正在做这两件事。我需要在移动版本上显示不同的内容,但我也使用bootstrap进行响应 – tessad