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