要根据请求端的不同而返回不同的页面,首先就得判断出请求端是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 包。 可以参考一下: