A doc
有很多articles
和可以有很多edits
。Rails:建立關係之間的區別
我想爲每個article
構建一個edit
,總數最多爲@doc.articles
。此代碼適用於第一個版本(即,尚未存在edits
)。
def editing
@doc = Doc.find(params[:id])
unbuilt = @doc.articles - @doc.edits
unbuilt.reverse.each do |article|
@doc.edits.build(:body => article.body, :article_id => article.id, :doc_id => @doc.id)
end
end
但當edits
已經存在,它會保持這些edits
,仍然建立在@doc.articles
總,如果只有一個article
改變了太多edits
和一些重複結束了。
我想提出一些條件對:article_id
存在於兩個edits
和articles
在說(在僞):
unbuilt = @doc.articles - @doc.edits
unbuilt.where('article_id not in (?)', @doc.edits).reverse.each do |article|
@doc.edits.build(...)
end
任何幫助將是極好的!非常感謝。
'build'只用於has_one關係,你說doc has_many編輯,所以如何使用build編輯它應該是'@ doc.edits.create(..)'謝謝 –
'build'正常工作這種情況對我來說。 –