diff options
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/session/active_record_store.rb | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/actionpack/lib/action_controller/session/active_record_store.rb b/actionpack/lib/action_controller/session/active_record_store.rb index 4a6b05c917..c247bd4785 100644 --- a/actionpack/lib/action_controller/session/active_record_store.rb +++ b/actionpack/lib/action_controller/session/active_record_store.rb @@ -117,17 +117,11 @@ class CGI end end + attr_writer :data + # Lazy-unmarshal session state. def data - unless @data - case d = read_attribute(@@data_column_name) - when String - @data = self.class.unmarshal(d) - else - @data = d || {} - end - end - @data + @data ||= self.class.unmarshal(read_attribute(@@data_column_name)) end private @@ -284,6 +278,7 @@ class CGI raise CGI::Session::NoSession, 'uninitialized session' end @session = @@session_class.new(:session_id => session_id, :data => {}) + @session.save end end |