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/