Adocには多数の があり、多数のarticlesを持つことができeditsます。
の合計数までeditfor eachを作成したいと思います。このコードは、最初のビルド (つまり、まだ存在しない場合) で機能します。article@doc.articlesedits
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.articleseditsarticle
: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
どんな助けでも素晴らしいでしょう!どうもありがとう。