diff options
author | Tsutomu Kuroda <t-kuroda@oiax.jp> | 2012-04-14 18:00:54 +0900 |
---|---|---|
committer | Tsutomu Kuroda <t-kuroda@oiax.jp> | 2012-05-16 08:39:48 +0900 |
commit | b0e2fc843b555f94a4472ed50b337dc5048c8b8c (patch) | |
tree | 42288e769a0fa86110930513a7caa113fdc51225 /activemodel/lib | |
parent | 7994496ab4127cf15323563acd55170b9d35821a (diff) | |
download | rails-b0e2fc843b555f94a4472ed50b337dc5048c8b8c.tar.gz rails-b0e2fc843b555f94a4472ed50b337dc5048c8b8c.tar.bz2 rails-b0e2fc843b555f94a4472ed50b337dc5048c8b8c.zip |
Fix human attribute_name to handle deeply nested attributes
When a model nests another model that also nests yet another model
using accepts_nested_attributes_for method, its Errors object can
have an attribute name with "contacts.addresses.street" style.
In this case, the dots within the namespace should be substituted
with slashes so that we can provide the translation under the
"activemodel.attributes.person/contacts/addresses.street" key.
This commit is related to #3859.
Diffstat (limited to 'activemodel/lib')
-rw-r--r-- | activemodel/lib/active_model/translation.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/activemodel/lib/active_model/translation.rb b/activemodel/lib/active_model/translation.rb index 6f0ca92e2a..7a86701f73 100644 --- a/activemodel/lib/active_model/translation.rb +++ b/activemodel/lib/active_model/translation.rb @@ -42,9 +42,9 @@ module ActiveModel # Specify +options+ with additional translating options. def human_attribute_name(attribute, options = {}) options = { :count => 1 }.merge!(options) - parts = attribute.to_s.split(".", 2) + parts = attribute.to_s.split(".") attribute = parts.pop - namespace = parts.pop + namespace = parts.join("/") unless parts.empty? attributes_scope = "#{self.i18n_scope}.attributes" if namespace |