Module: Shoulda::ActiveModel::Helpers

Instance Method Summary collapse

Instance Method Details

#default_error_message(key, values = {}) ⇒ Object

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.

default_error_message(:blank)
default_error_message(:too_short, :count => 5)
default_error_message(:too_long, :count => 60)


18
19
20
21
22
23
24
25
26
27
28
# File 'lib/shoulda/active_model/helpers.rb', line 18

def default_error_message(key, values = {})
  if Object.const_defined?(:I18n) # Rails >= 2.2
    message = I18n.translate("activerecord.errors.messages.#{key}", values, :default => '')
    if message.blank? # Rails 3 where the namespace has moved
      message = I18n.translate("errors.messages.#{key}", values)
    end
    message
  else # Rails <= 2.1.x
    ::ActiveRecord::Errors.default_error_messages[key] % values[:count]
  end
end

#pretty_error_messages(obj) ⇒ Object

:nodoc:



4
5
6
7
8
9
# File 'lib/shoulda/active_model/helpers.rb', line 4

def pretty_error_messages(obj) # :nodoc:
  obj.errors.map do |a, m| 
    msg = "#{a} #{m}" 
    msg << " (#{obj.send(a).inspect})" unless a.to_sym == :base
  end
end