aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2009-03-03 19:10:42 -0800
committerJeremy Kemper <jeremy@bitsweat.net>2009-03-03 19:10:42 -0800
commit8ef46f0d61c5e4a2b92708585a5157dac96a6817 (patch)
treea828e6cc95e3f3ab8a055304e3fcff90f3df889c /activerecord/lib/active_record
parentcb534524389bb4f407fc268a0bb7a7cffb6785a9 (diff)
parentce56c5daa81d61a745b88220014a846a0eea46a4 (diff)
downloadrails-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.rb10
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