在Rails 3中检测用户操作系统的最简单方法是什么?

Fra*_*ter 12 ruby-on-rails ruby-on-rails-3

简单的Rails应用程序,主要是脚手架.我想检测用户是否使用Android或iPhone访问我的应用程序.最简单的方法是什么?

joh*_*ley 31

if request.env['HTTP_USER_AGENT'].downcase.match(/android|iphone/)
  puts "yup, its mobile"
end
Run Code Online (Sandbox Code Playgroud)

  • 我在我的正则表达式中使用/ android | iphone | ipod/i来捕获iPod Touch.它还允许你删除downcase(我不区分大小写). (7认同)

mar*_*ada 8

我知道这个问题已经过时了,但如果这对其他人有帮助,我会使用此方法application_controller.rb自动将格式设置为:mobile:

before_filter :detect_mobile

protected

def detect_mobile
  request.format = :mobile if mobile?
end

def mobile?
  request.user_agent =~ /iPhone|iPad|Android/i
end
Run Code Online (Sandbox Code Playgroud)

mobile?方法是独立的,因此如果您需要为移动浏览器执行某种条件逻辑,您也可以在自己的控制器中使用它.