이것은 레일 3 앱이며 혼란 스럽습니다. 나는이 있습니다has_many : through 및 accepts_nested_attributes_for duplicating records
class Coleta < ActiveRecord::Base
has_many :coletas_produtos
has_many :produtos, through: :coletas_produtos
accepts_nested_attributes_for :produtos
end
class Produto < ActiveRecord::Base
has_many :coletas
has_many :coletas_produtos, through: :coletas
end
class ColetasProduto < ActiveRecord::Base
belongs_to :produto
belongs_to :coleta
end
나는 새로운 Coleta을 저장하려고 할 때, 나는 이런 식으로 작업을 수행합니다
def create
@coleta = Coleta.new(params[:coleta])
respond_to do |format|
if @coleta.save
format.html { redirect_to(coletas_path, :notice => "Coleta cadastrada com sucesso.") }
else
format.html { render :action => "new" }
end
end
end
을 그리고 이것은 내 양식이다 :이 때문에 노력하고 있습니다
<%= form_for(@coleta) do |f| %>
<%= f.fields_for :produtos do |p| %>
<div class="field left">
<%= p.label :codigo, "Código" %><br />
<%= p.text_field :codigo %>
</div>
<% end %>
<% end %>
coletas_produtos
테이블 아래에 올바른 레코드를 만듭니다. 내 문제는 produtos
관계가 아닌 다 대다 관계 만 저장하기를 원한다는 것입니다.
테이블의 레코드를 coletas_produtos
의 레코드와 함께 저장합니다. 저는 최신 기록 만 무시하고 보관하고 싶습니다.
가장 좋은 방법은 무엇입니까?
죄송합니다. 나는 그것을 알아. 대단히 감사합니다 :) – renatojf
@renatojf 같은 시나리오가 있습니다. 솔루션을 공유하면 좋을 것입니다. –