title: ActiveRecord: Reassign children by looping a collection fails
body: <p>So I was working on a homework assignment (the SaaS part 2 course on edx.org). 
  Essentially, we have two blog articles, and each article has associated comments. So the goal is to combine two articles into one by creating a third article. That also means, carrying over comments from the first two articles into the third article.</p>
  
  <p>In my code, my first approach is..
  assuming the method signature is <code>def merge_with(other_article_id)</code>, and <code>self</code> refers to first article, <code>other_article</code> refers to second article, and <code>new_article</code> refers to the newly created third article (note that the <code>new_article</code> is already saved with a primary key assigned)</p>
  
  <pre><code>self.comments do |comment|
    new_article.comments &lt;&lt; comment
  end
  other_article.comments do |comment|
    new_article.comments &lt;&lt; comment
  end     
  new_article.save
  debugger
  </code></pre>
  
  <p>Under debugger, if I do <code>e new_article.comments</code>, it returns empty <code>[]</code> but <strong>I am very puzzled as to why that's the case</strong>. </p>
  
  <p>The current work around is </p>
  
  <p><code>new_article.comments = self.comments + other_article.comments</code></p>
  
  <p>, and that allows me to finish my homework, but still, its bugs me to no end as to why collection looping approach does not work. </p>
  
  <p>One last question would be.. <strong>are there any recommended approach when it comes to reassign child to another parent</strong> (in this example reassign comment from one article to another)?</p>