ActiveRecord:通过循环集合重新分配子集失败

时间:2012-11-17 23:50:28

标签: ruby-on-rails activerecord

所以我正在做家庭作业(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我很困惑为什么会出现这种情况

目前的解决方法是

[]

,这让我可以完成我的作业,但是,它仍然让我无法理解为什么收集循环方法不起作用。

最后一个问题是.. 在将孩子重新分配给另一个家长时是否有任何推荐的方法(在此示例中将评论从一篇文章重新分配给另一篇文章)?

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我很想在循环内调试,看看注释的价值是什么,并确保它实际被调用。不应该是:self.comments.each do | comment | ...?也许你错过了对“每个”的呼吁