Module: Shoulda::Matchers::ActiveModel::Helpers
- Included in:
- AllowValueMatcher, EnsureLengthOfMatcher, ValidateConfirmationOfMatcher, ValidateUniquenessOfMatcher, ValidationMessageFinder
- Defined in:
- lib/shoulda/matchers/active_model/helpers.rb
Instance Method Summary (collapse)
-
- (Object) default_error_message(key, options = {})
Helper method that determines the default error message used by Active Record.
-
- (Object) pretty_error_messages(obj)
:nodoc:.
Instance Method Details
- (Object) default_error_message(key, options = {})
Helper method that determines the default error message used by Active Record. Works for both existing Rails 2.1 and Rails 2.2 with the newly introduced I18n module used for localization. Use with Rails 3.0 and up will delegate to ActiveModel::Errors.generate_error if a model instance is given.
default_error_message(:blank)
default_error_message(:too_short, :count => 5)
default_error_message(:too_long, :count => 60)
default_error_message(:blank, :model_name => 'user', :attribute => 'name')
default_error_message(:blank, :instance => #<Model>, :attribute => 'name')
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/shoulda/matchers/active_model/helpers.rb', line 26 def (key, = {}) model_name = .delete(:model_name) attribute = .delete(:attribute) instance = .delete(:instance) if instance && instance.errors.respond_to?(:generate_message) instance.errors.(attribute.to_sym, key, ) else default_translation = [ :activerecord.errors.models.#{model_name}.#{key}", :activerecord.errors.messages.#{key}", :errors.attributes.#{attribute}.#{key}", :errors.messages.#{key}" ] I18n.translate(:activerecord.errors.models.#{model_name}.attributes.#{attribute}.#{key}", { :default => default_translation }.merge()) end end |
- (Object) pretty_error_messages(obj)
:nodoc:
5 6 7 8 9 10 11 12 13 |
# File 'lib/shoulda/matchers/active_model/helpers.rb', line 5 def (obj) # :nodoc: obj.errors.map do |attribute, model| msg = "#{attribute} #{model}" if attribute.to_sym != :base && obj.respond_to?(attribute) msg << " (#{obj.send(attribute).inspect})" end msg end end |