Edited at

RailsでUserAgentに応じてlayoutを切り替える

More than 3 years have passed since last update.

UserAgentに応じてlayoutをかえる方法の備忘です。

UserAgentの判定はrack-user_agentというGemを使います。

UserAgentをパースしてrequestの中にosや端末の種類などをいれてくれる便利なGemです。


レイアウト切り替え

ポイントはlayout関数の引数を関数にしている点です。

関数にすることで動的に切り替えが可能です。


ソース

class ApplicationController < ActionController::Base

layout :select_layout
#スマートフォンのときは縮小版レイアウトを表示
def select_layout
if request.from_pc? || request.from_android_tablet? || request.from_ipad?
"sp_layout"
else
"application"
end
end