Rails 根据 user_agent 判断请求端

   要根据请求端的不同而返回不同的页面,首先就得判断出请求端是pc还是mobile。在http请求时,user_agent这个字段会记录用户所用的设备和浏览器。所以就得对user_agent进行解析,来获取是什么设备。

 

   (1)在Rails项目中,要用到useragent 这个gem 包(https://github.com/josh/useragent)。输入终端命令:

 

gem install useragent
   (2)在rails项目的 Gemfile 中写入:
gem 'useragent'
   (3) 输入终端命令:
bundle install 

 

  (4)获取user_agent :

user_agent = request.user_agent
或
user_agent = request.env['HTTP_USER_AGENT']
p user_agent 

结果:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.3 Safari/537.36"

 

  (5)用UserAgent 对user_agent进行解析:

user_agent_parsed = UserAgent.parse(user_agent)
p user_agent_parsed.platform #=> 'Macintosh'
p user_agent_parsed.browser # => 'Chrome'

 

 

   

    ps: 在github 上还有其他两个对user_agent进行解析的gem 包。 可以参考一下:

          https://github.com/kevinelliott/agent_orange

          https://github.com/fnando/browser

你可能感兴趣的:(Ruby,Rails,user_agent)