aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-06-17 18:08:59 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-06-17 18:08:59 -0300
commitf42f603d8a4ab54b4b3866a6a747880c46467da1 (patch)
treec26007ca962f04cf792818a9176160ee0d90758b
parentf55ea89e47a62192ef1a51e201e4a80dd52871d1 (diff)
parentd9812729c325006212ad0e0e1566cc76c072e709 (diff)
downloadrails-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
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/cast.rb2
-rw-r--r--activerecord/test/cases/adapters/postgresql/hstore_test.rb1
-rw-r--r--activerecord/test/cases/adapters/postgresql/json_test.rb3
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