[Rails] Rail2.1で携帯対応してみる

サンプルアプリを作成して、携帯でscaffoldを作ってみる。
ただそのままscaffold作ってもDoCoMoなどの端末で、uriにセッションキーを追加しないためActionController::InvalidAuthenticityToken という例外が発生する。
これに対応するためjpmobileを入れる。
ここではscaffoldのデータ更新の所まで記載。

jpmobile インストール

$ rails hoge
$ cd hoge
$ ruby script/generate scaffold person name:string age:integer
$ ./script/plugin install git://github.com/darashi/jpmobile.git

適当にテストデータ入れておく
http://d.hatena.ne.jp/shohu33/20080824

jpmobile設定

hoge/app/controllers/application.rb

protect_from_forgery :secretを必ず有効にすること!transit_sidがうまく動作しない?ため。

class ApplicationController < ActionController::Base
         :
  protect_from_forgery :secret => 'secrettttttttttttt' # secretを有効にする。
         :
  mobile_filter # DoCoMo、Au、SoftBankの絵文字を透過的に扱う
  transit_sid   # session_idをつけてくれる。
end

動作確認

$ script/server

以下URLに携帯でアクセスして、データ作成、更新などができる事を確認する。
http://localhost:3000/people