Rails 3 detect request coming from mobile clients

后端 未结 2 1641
不知归路
不知归路 2021-01-12 18:22

My setup: Rails 3.0.9, Ruby 1.9.2

My app needs to serve up a mobile vs. web layout depending on the request\'s origin. I need to support all the major mobile client

2条回答
  •  北荒
    北荒 (楼主)
    2021-01-12 18:42

    The easiest way to do it is parse request.user_agent by RegEx /Mobile|webOS/. Mobile/Full version variable can be saved into session, and helper will be useful to include mobile CSS:

    #controller
    def mobile_device?
      if session[:mobile_param]
        session[:mobile_param] == "1"
      else
        request.user_agent =~ /Mobile|webOS/
      end
    end
    
    helper_method :mobile_device?
    
    
    #layout
    <%= stylesheet_link_tag 'mobile' if mobile_device? %>
    

    Railscasts 199 is a step-by-step guide for you.

提交回复
热议问题