<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -33,11 +33,11 @@ module ActiveModel
       #   not occur (e.g. &lt;tt&gt;:unless =&gt; :skip_validation&lt;/tt&gt;, or &lt;tt&gt;:unless =&gt; Proc.new { |user| user.signup_step &lt;= 2 }&lt;/tt&gt;).  The
       #   method, proc or string should return or evaluate to a true or false value.
       def validates_associated(*attr_names)
-        configuration = { :message =&gt; ActiveModel::Errors.default_error_messages[:invalid], :on =&gt; :save }
+        configuration = { :message =&gt; ActiveModel::Errors.default_error_messages[:invalid], :on =&gt; default_validation_options[:on] }
         configuration.update(attr_names.extract_options!)
 
         validates_each(attr_names, configuration) do |record, attr_name, value|
-          record.errors.add(attr_name, configuration[:message]) unless
+          record.errors[attr_name] &lt;&lt; (configuration[:message]) unless
             (value.is_a?(Array) ? value : [value]).inject(true) { |v, r| (r.nil? || r.valid?) &amp;&amp; v }
         end
       end</diff>
      <filename>activemodel/lib/active_model/validations/associated.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,7 +29,7 @@ module ActiveModel
         raise(ArgumentError, &quot;An object with the method include? is required must be supplied as the :in option of the configuration hash&quot;) unless enum.respond_to?(&quot;include?&quot;)
 
         validates_each(attr_names, configuration) do |record, attr_name, value|
-          record.errors.add(attr_name, configuration[:message] % value) if enum.include?(value)
+          record.errors[attr_name] &lt;&lt; (configuration[:message] % value) if enum.include?(value)
         end
       end
     end</diff>
      <filename>activemodel/lib/active_model/validations/exclusion.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,13 +25,13 @@ module ActiveModel
       #   not occur (e.g. &lt;tt&gt;:unless =&gt; :skip_validation&lt;/tt&gt;, or &lt;tt&gt;:unless =&gt; Proc.new { |user| user.signup_step &lt;= 2 }&lt;/tt&gt;).  The
       #   method, proc or string should return or evaluate to a true or false value.
       def validates_format_of(*attr_names)
-        configuration = { :message =&gt; ActiveModel::Errors.default_error_messages[:invalid], :on =&gt; :save, :with =&gt; nil }
+        configuration = { :message =&gt; ActiveModel::Errors.default_error_messages[:invalid], :on =&gt; default_validation_options[:on], :with =&gt; nil }
         configuration.update(attr_names.extract_options!)
 
         raise(ArgumentError, &quot;A regular expression must be supplied as the :with option of the configuration hash&quot;) unless configuration[:with].is_a?(Regexp)
 
         validates_each(attr_names, configuration) do |record, attr_name, value|
-          record.errors.add(attr_name, configuration[:message] % value) unless value.to_s =~ configuration[:with]
+          record.errors[attr_name] &lt;&lt; (configuration[:message] % value) unless value.to_s =~ configuration[:with]
         end
       end
     end</diff>
      <filename>activemodel/lib/active_model/validations/format.rb</filename>
    </modified>
    <modified>
      <diff>@@ -40,7 +40,7 @@ module ActiveModel
           :too_long     =&gt; ActiveModel::Errors.default_error_messages[:too_long],
           :too_short    =&gt; ActiveModel::Errors.default_error_messages[:too_short],
           :wrong_length =&gt; ActiveModel::Errors.default_error_messages[:wrong_length]
-        }.merge(self.default_validation_options)
+        }.merge(default_validation_options)
         options.update(attrs.extract_options!.symbolize_keys)
 
         # Ensure that one and only one range option is specified.
@@ -68,9 +68,9 @@ module ActiveModel
             validates_each(attrs, options) do |record, attr, value|
               value = value.split(//) if value.kind_of?(String)
               if value.nil? or value.size &lt; option_value.begin
-                record.errors.add(attr, too_short)
+                record.errors[attr] &lt;&lt; too_short
               elsif value.size &gt; option_value.end
-                record.errors.add(attr, too_long)
+                record.errors[attr] &lt;&lt; too_long
               end
             end
           when :is, :minimum, :maximum
@@ -84,7 +84,7 @@ module ActiveModel
 
             validates_each(attrs, options) do |record, attr, value|
               value = value.split(//) if value.kind_of?(String)
-              record.errors.add(attr, message) unless !value.nil? and value.size.method(validity_checks[option])[option_value]
+              record.errors[attr] &lt;&lt; message unless !value.nil? and value.size.method(validity_checks[option])[option_value]
             end
         end
       end</diff>
      <filename>activemodel/lib/active_model/validations/length.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f30ee34c4539ad3633026778559dff648970f282</id>
    </parent>
  </parents>
  <author>
    <name>Ruy Asan</name>
    <email>ruyasan@gmail.com</email>
  </author>
  <url>http://github.com/rubyruy/rails/commit/08144c7a4c68c830e80f31556b20a1ec02d2b135</url>
  <id>08144c7a4c68c830e80f31556b20a1ec02d2b135</id>
  <committed-date>2008-06-19T11:45:08-07:00</committed-date>
  <authored-date>2008-06-19T11:43:23-07:00</authored-date>
  <message>Updated macros to use new errors syntax</message>
  <tree>1061837d72a40aaf41511ded3a0585bdafca4cec</tree>
  <committer>
    <name>Ruy Asan</name>
    <email>ruyasan@gmail.com</email>
  </committer>
</commit>
