所以我正在做一个家庭作业(edx.org 上的 SaaS 第 2 部分课程)。本质上,我们有两篇博客文章,每篇文章都有相关的评论。所以目标是通过创建第三篇文章将两篇文章合并为一篇。这也意味着,将前两篇文章的评论转移到第三篇文章中。
在我的代码中,我的第一种方法是.. 假设方法签名是def merge_with(other_article_id)
,并且self
指的是第一篇文章,other_article
指的是第二篇文章,并且new_article
是指新创建的第三篇文章(注意,new_article
已经使用分配的主键保存)
self.comments do |comment|
new_article.comments << comment
end
other_article.comments do |comment|
new_article.comments << comment
end
new_article.save
debugger
在调试器下,如果我这样做e new_article.comments
,它会返回空[]
,但我很困惑为什么会这样。
目前的解决方法是
new_article.comments = self.comments + other_article.comments
,这让我可以完成我的作业,但是,对于为什么集合循环方法不起作用,它仍然困扰着我。
最后一个问题是..在将孩子重新分配给另一位父母(在本例中将评论从一篇文章重新分配给另一篇文章)时,是否有任何推荐的方法?