diff options
Diffstat (limited to 'activerecord')
| -rw-r--r-- | activerecord/lib/active_record/session_store.rb | 13 | ||||
| -rw-r--r-- | activerecord/test/cases/session_store/sql_bypass.rb | 9 | 
2 files changed, 16 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/session_store.rb b/activerecord/lib/active_record/session_store.rb index 04f059fb05..766e63edc7 100644 --- a/activerecord/lib/active_record/session_store.rb +++ b/activerecord/lib/active_record/session_store.rb @@ -273,12 +273,13 @@ module ActiveRecord        end        def destroy -        unless @new_record -          @@connection.delete <<-end_sql, 'Destroy session' -            DELETE FROM #{@@table_name} -            WHERE #{@@connection.quote_column_name(@@session_id_column)}=#{@@connection.quote(session_id)} -          end_sql -        end +        return if @new_record + +        connect = connection +        connect.delete <<-end_sql, 'Destroy session' +          DELETE FROM #{table_name} +          WHERE #{connect.quote_column_name(session_id_column)}=#{connect.quote(session_id)} +        end_sql        end      end diff --git a/activerecord/test/cases/session_store/sql_bypass.rb b/activerecord/test/cases/session_store/sql_bypass.rb index 0059467bc0..f0ba166465 100644 --- a/activerecord/test/cases/session_store/sql_bypass.rb +++ b/activerecord/test/cases/session_store/sql_bypass.rb @@ -42,6 +42,15 @@ module ActiveRecord          assert_equal s.session_id, t.session_id          assert_equal s.data, t.data        end + +      def test_destroy +        SqlBypass.create_table! unless Session.table_exists? +        session_id = 20 +        s = SqlBypass.new :data => 'hello', :session_id => session_id +        s.save +        s.destroy +        assert_nil SqlBypass.find_by_session_id session_id +      end      end    end  end  | 
