l'essentiel est invisible pour les yeux

Saturday, April 21, 2007

[Rails] Changeset 6197でランダムなsession_keyを使用するようになった変更へのMobile on Railsの対応

こちらのChangeset 6197でRailsアプリ名を含むランダムなsession_keyを使用するようになったので、Mobile on Railsもそれに対応した。

Mobile on Rails

Index: workspace/mobile_on_rails/lib/mobile/controller.rb
===================================================================
--- workspace/mobile_on_rails/lib/mobile/controller.rb (revision 65)
+++ workspace/mobile_on_rails/lib/mobile/controller.rb (revision 66)
@@ -31,7 +31,7 @@

def rewrite_options_with_session_id(options)
if request && request.mobile?
- session_key = ::ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_key] || '_session_id'
+ session_key = self.class.read_inheritable_attribute("session_options")[0][:session_key] || '_session_id'
if request && request.session.session_id
options = options.dup
options.update session_key => request.session.session_id



Changeset 6184によるとRailsのデフォルトのSessionStoreとして新たにCookieベースのSessionStoreが実装された様子。Rails中でセッションを使用する場合、flashに代入するエラーメッセージやログイン後のユーザオブジェクトなどがほとんどのため、4kbyteの制限内に収めることができる。その場合は、PStoreよりもCookieStoreの方が実行速度が速いとの事。