0
這是一個rails 3應用程序,它讓我感到困惑。我有這樣的:has_many:通過和accepted_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
當我嘗試保存新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
關係。
它一直保存在produtos
表內的記錄以及coletas_produtos
上的記錄。我想忽略並保留最新的記錄。
什麼是最好的(有沒有辦法?)的方式來做到這一點?
對於遲到的回覆感到抱歉。我想到了。非常感謝:) – renatojf
@renatojf我有同樣的情況。如果你分享你的解決方案,那將是非常棒的。 –