title: has_many and :after_add / :before_add => callback for << and create methods
body: <p>I am reading Rails 3 Way book and got confused at the point:</p>
  
  <blockquote>
    <p><strong>:after_add => callback</strong> 
    Called after a record is added to the collection via the &lt;&lt; method. Is not triggered by the collection’s
    create method</p>
  </blockquote>
  
  <p>As I understand book.chapters.create(title: 'First Chapter') won't invoke before_add callback but actually it is calling.</p>
  
  <pre><code>class Book &lt; ActiveRecord::Base
    attr_accessible :title
    has_many :chapters, :before_add =&gt; :add_chapter
  
    private
      def add_chapter(chapter)
        logger.error('chapter added to book')
      end
  end
  
  class Chapter &lt; ActiveRecord::Base
    belongs_to :book
    attr_accessible :title
  end
  </code></pre>
  
  <p>In Console(minified)</p>
  
  <pre><code> &gt; b = Book.first
    Book Load (0.1ms)  SELECT "books".* FROM "books" LIMIT 1
   &gt; b.chapters.create(title: 'Last Chapter')
    begin transaction
  chapter added to book
    INSERT INTO "chapters" ....
    commit transaction
  </code></pre>
  
  <p>Here you can see that <code>after_add</code> callback is invoke for <code>create</code>. </p>
  
  <p>Am I misunderstood something?</p>
  
  <p><strong>Edit</strong></p>
  
  <pre><code>b.chapters.new(title: 'New Chapter')
  b.chapters.build(title: 'New Chapter')
  </code></pre>
  
  <p>also invokes callback</p>