DesignAssembler

備忘録に近い

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? %>

とするだけです。とても便利です。

参考