Это приложение для рельсов 3, и это меня сбивает с толку. У меня есть это:has_many: through and accepts_nested_attributes_for дублирующих записей
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
При попытке сохранить новый Колет, я делаю это так:
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
.
Сохраняет записи в таблице produtos
вместе с записями на coletas_produtos
. Я хочу игнорировать и хранить только последние записи.
Каков наилучший способ (есть способ?), Чтобы это сделать?
извините за поздний отклик. Я понял. Большое спасибо :) – renatojf
@renatojf У меня такой же сценарий. Было бы здорово, если бы вы поделились своим решением. –