Adoc
有很多articles
并且可以有很多edits
。
我想edit
为每个article
最多构建一个总数@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
,最终会出现太多和一些重复。edits
article
我想提出一些: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
任何帮助都会很棒!太感谢了。