所以我正在做一個家庭作業任務(在edx.org上的SaaS第2部分課程)。 本質上,我們有兩篇博客文章,每篇文章都有相關的評論。所以我們的目標是通過創建第三篇文章將兩篇文章合併爲一篇文章。這也意味着,將前兩篇文章的意見轉化爲第三篇文章。ActiveRecord:通過循環收集來重新分配兒童失敗
在我的代碼,我的第一種方法是.. 假設方法簽名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
,並允許我完成我的功課,不過,它的錯誤我沒有盡頭,爲什麼收集循環方法是行不通的。
最後一個問題是...... 是否有任何推薦的方法,當涉及到將子女重新分配給另一位父母(在此示例中,重新分配來自一篇文章的評論)?
哦,男孩......我不敢相信我錯過了這樣一個小細節。是的,'.each'是失蹤的關鍵。這有點奇怪,因爲當我調試時,我覺得我正在迭代循環。 – Antony