[Rails] Railsで携帯サイトを作る時のまとめ
移転しました。
携帯サイトを作る際のまとめを記載しておく
携帯からのアクセスの時には、jpmobileを使用する
jpmobileを使用すると携帯からのアクセスの時、コントローラーを切り替えられたり、session_idをURLに付与する事ができ、InvalidAuthenticityTokenエラーを防げたりする。
携帯からのアクセスの際にコントローラ切り替え
http://d.hatena.ne.jp/darashi/20061031/1162236300
あらかじめ携帯のコントローラーを作っておき、携帯からのアクセス時にリダイレクトするようにする。これはjpmobileがインストールされている事を前提とする。
以下引用
class PcController < ApplicationController before_filter :redirect_for_mobile private def redirect_for_mobile if request.mobile? pa = params.dup pa[:controller] = "/mobile" redirect_to pa end end end
文字コード対応
http://d.hatena.ne.jp/darashi/20061031/1162236300
以下引用
一部機種ではUTF-8のHTMLは正しく表示できないようです。after_filterを使うと、出力の段階で文字コードを変換できるので便利かもしれません。 ----- class MobileController < ApplicationController after_filter :to_sjis private def to_sjis @headers["Content-Type"] = "text/html; charset=Shift_JIS" response.body = response.body.tosjis end end -----
バリデータエラー時のDIVタグをSPANタグに変える
これは特に変えなくてもよいのですが、バリデートエラー時にDIVタグだと勝手に改行されたりと、画面が崩れあまり好ましくないのでspanタグにかえるというもの
参考URL
http://d.hatena.ne.jp/moro/20051108/1131448716
config.action_view.field_error_procでバリデーションエラー時にラップされるHTMLらしいので、これを変更する
config/environments.rb
Rails::Initializer.run do |config| : config.action_view.field_error_proc = lambda{|tag, instance| "<span class=\"fieldWithErrors\">#{tag}</span>" } : end