Adoc
には多数の があり、多数のarticles
を持つことができedits
ます。
の合計数までedit
for eachを作成したいと思います。このコードは、最初のビルド (つまり、まだ存在しない場合) で機能します。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
構築されます。1 つだけが変更された場合、あまりにも多くの重複が発生します。@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
どんな助けでも素晴らしいでしょう!どうもありがとう。