diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2009-03-03 19:10:42 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2009-03-03 19:10:42 -0800 |
commit | 8ef46f0d61c5e4a2b92708585a5157dac96a6817 (patch) | |
tree | a828e6cc95e3f3ab8a055304e3fcff90f3df889c /activerecord/lib/active_record | |
parent | cb534524389bb4f407fc268a0bb7a7cffb6785a9 (diff) | |
parent | ce56c5daa81d61a745b88220014a846a0eea46a4 (diff) | |
download | rails-8ef46f0d61c5e4a2b92708585a5157dac96a6817.tar.gz rails-8ef46f0d61c5e4a2b92708585a5157dac96a6817.tar.bz2 rails-8ef46f0d61c5e4a2b92708585a5157dac96a6817.zip |
Merge branch 'master' of git@github.com:rails/rails
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/session_store.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/session_store.rb b/activerecord/lib/active_record/session_store.rb index de199d30bf..3cc4640f42 100644 --- a/activerecord/lib/active_record/session_store.rb +++ b/activerecord/lib/active_record/session_store.rb @@ -287,8 +287,7 @@ module ActiveRecord def get_session(env, sid) Base.silence do sid ||= generate_sid - session = @@session_class.find_by_session_id(sid) - session ||= @@session_class.new(:session_id => sid, :data => {}) + session = find_session(sid) env[SESSION_RECORD_KEY] = session [sid, session.data] end @@ -296,7 +295,7 @@ module ActiveRecord def set_session(env, sid, session_data) Base.silence do - record = env[SESSION_RECORD_KEY] + record = env[SESSION_RECORD_KEY] ||= find_session(sid) record.data = session_data return false unless record.save @@ -310,5 +309,10 @@ module ActiveRecord return true end + + def find_session(id) + @@session_class.find_by_session_id(id) || + @@session_class.new(:session_id => id, :data => {}) + end end end |