diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-17 18:08:59 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-17 18:08:59 -0300 |
commit | f42f603d8a4ab54b4b3866a6a747880c46467da1 (patch) | |
tree | c26007ca962f04cf792818a9176160ee0d90758b /activerecord | |
parent | f55ea89e47a62192ef1a51e201e4a80dd52871d1 (diff) | |
parent | d9812729c325006212ad0e0e1566cc76c072e709 (diff) | |
download | rails-f42f603d8a4ab54b4b3866a6a747880c46467da1.tar.gz rails-f42f603d8a4ab54b4b3866a6a747880c46467da1.tar.bz2 rails-f42f603d8a4ab54b4b3866a6a747880c46467da1.zip |
Merge pull request #15780 from sgrif/sg-dont-always-save-mutable-types
Don't assume that Hstore columns have always changed
Diffstat (limited to 'activerecord')
3 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/cast.rb b/activerecord/lib/active_record/connection_adapters/postgresql/cast.rb index bb54de05c8..8f6247c7d2 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/cast.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/cast.rb @@ -8,7 +8,7 @@ module ActiveRecord def hstore_to_string(object, array_member = false) # :nodoc: if Hash === object - string = object.map { |k, v| "#{escape_hstore(k)}=>#{escape_hstore(v)}" }.join(',') + string = object.map { |k, v| "#{escape_hstore(k)}=>#{escape_hstore(v)}" }.join(', ') string = escape_hstore(string) if array_member string else diff --git a/activerecord/test/cases/adapters/postgresql/hstore_test.rb b/activerecord/test/cases/adapters/postgresql/hstore_test.rb index 83b495d600..c4e2917251 100644 --- a/activerecord/test/cases/adapters/postgresql/hstore_test.rb +++ b/activerecord/test/cases/adapters/postgresql/hstore_test.rb @@ -170,6 +170,7 @@ class PostgresqlHstoreTest < ActiveRecord::TestCase hstore.reload assert_equal 'four', hstore.settings['three'] + assert_not hstore.changed? end def test_gen1 diff --git a/activerecord/test/cases/adapters/postgresql/json_test.rb b/activerecord/test/cases/adapters/postgresql/json_test.rb index a3400a5a19..3c07209472 100644 --- a/activerecord/test/cases/adapters/postgresql/json_test.rb +++ b/activerecord/test/cases/adapters/postgresql/json_test.rb @@ -183,6 +183,7 @@ class PostgresqlJSONTest < ActiveRecord::TestCase json.save! json.reload - assert json.payload['three'] = 'four' + assert_equal({ 'one' => 'two', 'three' => 'four' }, json.payload) + assert_not json.changed? end end |