Rails4.1にvariantsという条件によってテンプレートを変える便利機能があります。
使い方
- コントローラでrequest.variantsをセット
- バリアントごとにテンプレートを用意
これだけです。
##ApplicationControllerでの設定例
class ApplicationController < ActionController::Base
before_action :detect_variant
private
def detect_variant
case request.user_agent
when /ip(hone|od)/i
request.variant = :phone
when /android.+mobile/i
request.variant = :phone
end
end
end
テンプレートの準備
index.html.haml
と index.html+phone.haml
のように
アクション名.拡張子+request.variant.テンプレートエンジン
というテンプレートを別に用意する
参考