要根据请求端的不同而返回不同的页面,首先就得判断出请求端是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 包。 可以参考一下:
相关推荐
InspiniaAdmin 2.6.1 Rails_Full_Version
Rails自动缩放代理 该宝石可与 Heroku附加组件一起使用,以根据需要自动缩放您的网络和工作人员的动态范围。 它为每个请求(和作业队列)收集最少的一组指标,并定期将该...您将需要require 'rails_autoscale_agent/m
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
inspinia admin 2.5 中的 Rails_Full_Version
agile_web_development_with_rails_3rd_edition.9994652073.pdf
RestFul_Rails_Dev_v_0.1 RestFul_Rails_Dev_v_0.1
rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...
Rails_Recipes_with_Source_Code
ruby_on_rails_3_入门教程(中文)
Rails_3_Cheat_Sheets.pdf
InspiniaAdmin 2.5 Rails_Seed_Project
rails_plugins_presentation
InspiniaAdmin 2.5 Rails_full_version
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
复杂Rails系统架构优化
INSPINIA_Rails_Full_Version-v2.6.2.1
inspinia admin 2.5 中的 Rails_Seed_Project