所以我正在做家庭作业(edx.org上的SaaS第2部分课程)。 基本上,我们有两篇博客文章,每篇文章都有相关的评论。因此,目标是通过创建第三篇文章将两篇文章合并为一篇。这也意味着,将前两篇文章中的评论转载到第三篇文章中。
在我的代码中,我的第一种方法是......
假设方法签名为def merge_with(other_article_id)
,self
引用第一篇文章,other_article
引用第二篇文章,new_article
引用新创建的第三篇文章(请注意{ {1}}已经保存,并指定了主键
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
但我很困惑为什么会出现这种情况。
目前的解决方法是
[]
,这让我可以完成我的作业,但是,它仍然让我无法理解为什么收集循环方法不起作用。
最后一个问题是.. 在将孩子重新分配给另一个家长时是否有任何推荐的方法(在此示例中将评论从一篇文章重新分配给另一篇文章)?
答案 0 :(得分:0)
为了解决这个问题,我很想在循环内调试,看看注释的价值是什么,并确保它实际被调用。不应该是:self.comments.each do | comment | ...?也许你错过了对“每个”的呼吁