Railsでブラウザ判定
Railsでブラウザ判定する時にrequest.env['HTTP_USER_AGENT']でブラウザ判定しようとしたのですが、ChromeからうまくSafariが取れませんでした。
request.env['HTTP_USER_AGENT']を見てみると
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36
となっていて、正規表現でSafariという文字があった時に処理をするようにしているためChromeでも反応してしまいます。
どうしようかなと迷っていたらbrowserといういいgemを見つけました。
インストールはGemfileに以下を追加するだけです。
#Gemfile gem 'browser'
Safariの判定は、使いたい場所で
<% if browser.safari? %>
とするだけです。モバイル判定も
<% if browser.device.mobile? %>
とするだけです。とても便利です。