diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2016-05-31 09:56:19 -0400 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2016-05-31 10:03:26 -0400 |
commit | ff4986b917f6cc64398e2ba687f998fc52cf630c (patch) | |
tree | 23e0fd76336473d594cafde4b995fbc6581c3c7c /activerecord/test/models | |
parent | 998bbbcc0e043e16b96613387cdb8f0ee4784ff2 (diff) | |
download | rails-ff4986b917f6cc64398e2ba687f998fc52cf630c.tar.gz rails-ff4986b917f6cc64398e2ba687f998fc52cf630c.tar.bz2 rails-ff4986b917f6cc64398e2ba687f998fc52cf630c.zip |
Ensure hashes can be passed to attributes using `composed_of`
This behavior was broken by 36e9be85. When the value is assigned
directly, either through mass assignment or directly assigning a hash,
the hash gets passed through to this writer method directly. While this
is intended to handle certain cases, when an explicit converter has been
provided, we should continue to use that instead. The positioning of the
added guard caused the new behavior to override that case.
Fixes #25210
Diffstat (limited to 'activerecord/test/models')
-rw-r--r-- | activerecord/test/models/customer.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/test/models/customer.rb b/activerecord/test/models/customer.rb index afe4b3d707..3338aaf7e1 100644 --- a/activerecord/test/models/customer.rb +++ b/activerecord/test/models/customer.rb @@ -64,7 +64,12 @@ class Fullname def self.parse(str) return nil unless str - new(*str.to_s.split) + + if str.is_a?(Hash) + new(str[:first], str[:last]) + else + new(*str.to_s.split) + end end def initialize(first, last = nil) |