def add(attribute, message = nil, options = {})
      message = normalize_message(attribute, message, options)
      self[attribute] << message
    end
def add(attribute, message = nil, options = {})
      message = normalize_message(attribute, message, options)
      self[attribute] << message
    end
Adds +message+ to the error messages on +attribute+. More than one error
 can be added to the same +attribute+. If no +message+ is supplied,
 <tt>:invalid</tt> is assumed.

   person.errors.add(:name)
   # => ["is invalid"]
   person.errors.add(:name, 'must be implemented')
   # => ["is invalid", "must be implemented"]

   person.errors.messages
   # => {:name=>["must be implemented", "is invalid"]}

 If +message+ is a symbol, it will be translated using the appropriate
 scope (see +generate_message+).

 If +message+ is a proc, it will be called, allowing for things like
 <tt>Time.now</tt> to be used within an error.

   person.errors.messages # => {}