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'正常工作这种情况对我来说。 –