diff options
author | Martin Larochelle <martin.larochelle@shopify.com> | 2018-08-14 11:52:26 -0400 |
---|---|---|
committer | Martin Larochelle <martin.larochelle@shopify.com> | 2018-08-14 12:01:23 -0400 |
commit | 0b54641878a9cee450170135ca0c43ddbb4cb09f (patch) | |
tree | df6ae873eb9259b3c5721b074134df2d1af561ac /activemodel/lib | |
parent | f2970a08b57ebcdb9cbf8eec5d10a7f04eb7b9d3 (diff) | |
download | rails-0b54641878a9cee450170135ca0c43ddbb4cb09f.tar.gz rails-0b54641878a9cee450170135ca0c43ddbb4cb09f.tar.bz2 rails-0b54641878a9cee450170135ca0c43ddbb4cb09f.zip |
`ActiveModel.full_message` interaction with `index_errors`
Diffstat (limited to 'activemodel/lib')
-rw-r--r-- | activemodel/lib/active_model/errors.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index edc30ee64d..5138a07b71 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -379,9 +379,11 @@ module ActiveModel # * <tt>errors.format</tt> def full_message(attribute, message) return message if attribute == :base + attribute = attribute.to_s if self.class.i18n_full_message && @base.class.respond_to?(:i18n_scope) - parts = attribute.to_s.split(".") + attribute = attribute.remove(/\[\d\]/) + parts = attribute.split(".") attribute_name = parts.pop namespace = parts.join("/") unless parts.empty? attributes_scope = "#{@base.class.i18n_scope}.errors.models" @@ -410,8 +412,9 @@ module ActiveModel defaults << :"errors.format" defaults << "%{attribute} %{message}" - attr_name = attribute.to_s.tr(".", "_").humanize - attr_name = @base.class.human_attribute_name(attribute, default: attr_name) + attr_name = attribute.tr(".", "_").humanize + attr_name = @base.class.human_attribute_name(attribute.to_sym, default: attr_name) + I18n.t(defaults.shift, default: defaults, attribute: attr_name, |