diff options
author | Marcelo Silveira <marcelo@mhfs.com.br> | 2012-05-02 23:57:27 -0300 |
---|---|---|
committer | Marcelo Silveira <marcelo@mhfs.com.br> | 2012-05-16 00:28:03 -0300 |
commit | 279fef1f9fedf73d94fc09e34566b1c56ec04a4c (patch) | |
tree | f331ddba183e99840badd3cb829ec5abbb7470b8 /activerecord/lib | |
parent | 7994496ab4127cf15323563acd55170b9d35821a (diff) | |
download | rails-279fef1f9fedf73d94fc09e34566b1c56ec04a4c.tar.gz rails-279fef1f9fedf73d94fc09e34566b1c56ec04a4c.tar.bz2 rails-279fef1f9fedf73d94fc09e34566b1c56ec04a4c.zip |
Rename test file so that the test suite matches it, implement `persisted?` for SqlBypass as expected by tests and convert session_id to string before using on queries to get correct quotes on postgresql (avoid casting error).
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/session_store.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/session_store.rb b/activerecord/lib/active_record/session_store.rb index ed47a26749..5a256b040b 100644 --- a/activerecord/lib/active_record/session_store.rb +++ b/activerecord/lib/active_record/session_store.rb @@ -201,10 +201,10 @@ module ActiveRecord class << self alias :data_column_name :data_column - + # Use the ActiveRecord::Base.connection by default. attr_writer :connection - + # Use the ActiveRecord::Base.connection_pool by default. attr_writer :connection_pool @@ -218,12 +218,12 @@ module ActiveRecord # Look up a session by id and unmarshal its data if found. def find_by_session_id(session_id) - if record = connection.select_one("SELECT * FROM #{@@table_name} WHERE #{@@session_id_column}=#{connection.quote(session_id)}") + if record = connection.select_one("SELECT * FROM #{@@table_name} WHERE #{@@session_id_column}=#{connection.quote(session_id.to_s)}") new(:session_id => session_id, :marshaled_data => record['data']) end end end - + delegate :connection, :connection=, :connection_pool, :connection_pool=, :to => self attr_reader :session_id, :new_record @@ -241,6 +241,11 @@ module ActiveRecord @new_record = @marshaled_data.nil? end + # Returns true if the record is persisted, i.e. it's not a new record + def persisted? + !@new_record + end + # Lazy-unmarshal session state. def data unless @data @@ -287,7 +292,7 @@ module ActiveRecord connect = connection connect.delete <<-end_sql, 'Destroy session' DELETE FROM #{table_name} - WHERE #{connect.quote_column_name(session_id_column)}=#{connect.quote(session_id)} + WHERE #{connect.quote_column_name(session_id_column)}=#{connect.quote(session_id.to_s)} end_sql end end |