diff options
author | Dmitry Polushkin <dmitry.polushkin@gmail.com> | 2011-09-15 09:39:26 +0100 |
---|---|---|
committer | Dmitry Polushkin <dmitry.polushkin@gmail.com> | 2011-09-15 09:39:26 +0100 |
commit | 9d54f8994d09db5435d6c234430ae13333928fb9 (patch) | |
tree | 12413c10ed50c181f5bea0980edca998e72969bb /activemodel/lib/active_model/errors.rb | |
parent | edd2f21e8095fe4a38e812025b4d9fd0e0cc28f1 (diff) | |
parent | da7f0426ec7b0aa053489633c2a8a3da6423654f (diff) | |
download | rails-9d54f8994d09db5435d6c234430ae13333928fb9.tar.gz rails-9d54f8994d09db5435d6c234430ae13333928fb9.tar.bz2 rails-9d54f8994d09db5435d6c234430ae13333928fb9.zip |
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activemodel/lib/active_model/errors.rb')
-rw-r--r-- | activemodel/lib/active_model/errors.rb | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index 7828434927..d91e4a2b6a 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -180,6 +180,7 @@ module ActiveModel all? { |k, v| v && v.empty? } end alias_method :blank?, :empty? + # Returns an xml formatted representation of the Errors hash. # # p.errors.add(:name, "can't be blank") @@ -254,20 +255,22 @@ module ActiveModel # company.errors.full_messages # => # ["Name is too short (minimum is 5 characters)", "Name can't be blank", "Email can't be blank"] def full_messages - map { |attribute, message| - if attribute == :base - message - else - attr_name = attribute.to_s.gsub('.', '_').humanize - attr_name = @base.class.human_attribute_name(attribute, :default => attr_name) - - I18n.t(:"errors.format", { - :default => "%{attribute} %{message}", - :attribute => attr_name, - :message => message - }) - end - } + map { |attribute, message| full_message(attribute, message) } + end + + # Returns a full message for a given attribute. + # + # company.errors.full_message(:name, "is invalid") # => + # "Name is invalid" + def full_message(attribute, message) + return message if attribute == :base + attr_name = attribute.to_s.gsub('.', '_').humanize + attr_name = @base.class.human_attribute_name(attribute, :default => attr_name) + I18n.t(:"errors.format", { + :default => "%{attribute} %{message}", + :attribute => attr_name, + :message => message + }) end # Translates an error message in its default scope |