2009-04-02 13 views
2

私のアプリでは、標準のactive_record_storeを使用しています。 environment.rbでは私が持っている:基本的なActiveRecordStore updated_atフィールドはすべてのリクエストで更新されません

config.action_controller.session_store = :active_record_store 

そして、私のsessionsテーブルがrake db:sessions:createで作成されました:updated_at列がそれぞれの要求に更新されていないが

create_table :sessions do |t| 
    t.string :session_id, :null => false 
    t.text :data 
    t.timestamps 
end 

add_index :sessions, :session_id 
add_index :sessions, :updated_at 

。これは、セッション作成時に更新されます(期待どおりにcreated_atと同じ値になります)。後続の要求では更新されません。

私はenvironment.rbで、次の明示的な呼び出しを宣言した場合奇妙なことに、そのフィールドが要求ごとに更新さです:

class CGI::Session::ActiveRecordStore::Session 
def before_save 
    self.updated_at = Time.now 
end 
end 

これはデフォルトでは動作しない理由を誰もが説明できますか?

私はRails 2.1.0を実行しています。いいえ、現時点ではRailsをアップグレードできません。 :)

答えて

1

セッションを更新していますか?値を更新しない場合は、セッションがディスクに保存されないと考えられます。

class WhateverController < ActionController 
    def index 
    session[:whatever] = true 
    end 
end 
+0

こんにちは。はい、すべてのリクエストでセッション[:user]を更新していますが、値は同じです – Olly

関連する問題