[前][次][番号順一覧][スレッド一覧]

rails:1546

From: SAITO Masaru <daisaito@l...>
Date: Mon, 21 Aug 2006 01:52:38 +0900
Subject: [rails:1546] ActiveHeartのsessionをroute.rbで定義するとsessionが引き継げない

齋藤@横浜です。

pluginのActiveHeartを使って携帯電話向けのサイトでsessionを使おうと
思っています。そこでいろいろ検証している最中ですが、session_idを通常通り
?_session_id=xxxxxxxという場合は何もしなくてもsessionが引き継げるのでが
config/route.rbで 
map.connect ':controller/:action/:_session_id' 
というように設定すると、session_id自体は意図通り設定されるのですが、

肝心のsession_idが毎回変わってしまいます。
ただ、必ず毎回変わるかというとそうではなく、
formのpostの場合はちゃんと同じsession_idで引き継がれます。
(parameterがhiddenでも送信されているからだと思われます)

おそらく、pluginのrequireとHTTPパラメータの読み込み、config/route.rb
のパラメータの読み込み、session_idの読み込みのタイミングが相関しての
現象だと思うのですが、この問題の回避方法はあるのでしょうか?

現在の設定を下記に貼り付けます。

config/environment.rb
=======================================================================
#(略)
# sessionにcookieではなく、URL埋め込みをする為の設定(ActiveHeart)
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:trans_sid] = true
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:no_cookies] = 
true
#(略)
  # Use the database for sessions instead of the file system
  # (create the session table with 'rake db:sessions:create')
  config.action_controller.session_store = :active_record_store
=======================================================================

config/route.rb
=======================================================================
#(略)
map.connect ':controller/:action/:_session_id'
#(略)
=======================================================================

なお、session管理はARを使って行うようにしました。
(rake db:sessions:create && rake migrateでmysql上に作っています)

ちなみにActiveHeartは下記URLを参考にして入れました。
http://jp.rubyist.net/magazine/?0012-RubyOnRails

--
SAITO Masaru<daisaito@l...>


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]