皆さん、Rails でブラウザー検出を行うために、業界内でどのような方法が標準になっているのだろうかと思っていました。ブラウザを特定し、クラスまたは ID を (X)HTML の body 要素に適用するのに役立つ宝石、ライブラリ、またはサンプル コードはどこかにありますか? ありがとう、みんなが何を使っているのか、そしてこれを行う方法が受け入れられているのかどうか疑問に思っていますか?
user.agent を取得してその文字列を解析できることはわかっていますが、それがブラウザー検出を行うための許容可能な方法であるかどうかはわかりません。
また、ここで機能検出について議論しようとしているわけではありません。StackOverflow でそれに対する複数の回答を読みました。私が求めているのは、皆さんが行ったことだけです。
[アップデート]
GitHub のfaunzyのおかげで、Rails でユーザー エージェントをチェックすることについて少し理解できましたが、Rails 3 でこれが最善の方法であるかどうかはまだわかりません。遠い:
def users_browser
user_agent = request.env['HTTP_USER_AGENT'].downcase
@users_browser ||= begin
if user_agent.index('msie') && !user_agent.index('opera') && !user_agent.index('webtv')
'ie'+user_agent[user_agent.index('msie')+5].chr
elsif user_agent.index('gecko/')
'gecko'
elsif user_agent.index('opera')
'opera'
elsif user_agent.index('konqueror')
'konqueror'
elsif user_agent.index('ipod')
'ipod'
elsif user_agent.index('ipad')
'ipad'
elsif user_agent.index('iphone')
'iphone'
elsif user_agent.index('chrome/')
'chrome'
elsif user_agent.index('applewebkit/')
'safari'
elsif user_agent.index('googlebot/')
'googlebot'
elsif user_agent.index('msnbot')
'msnbot'
elsif user_agent.index('yahoo! slurp')
'yahoobot'
#Everything thinks it's mozilla, so this goes last
elsif user_agent.index('mozilla/')
'gecko'
else
'unknown'
end
end
return @users_browser
end