我有一个带有嵌套属性的many to many through
关联。在edit participant
中,我有一个collection_check_boxes :webinar_ids
,这使我可以将参加者添加到网络研讨会中,而我有一个嵌套属性connected
。我可以将参与者添加到网络研讨会中,然后如果我返回到edit participant
,则可以为参与者连接的每个网络研讨会打勾connected
。问题是当我想进行edit/update
网络研讨会时,我遇到了一个错误,Couldn't find ParticipantWebinar with ID=95 for Participant with ID=16
我已经尝试过Dependent::destroy,:delete_all,将所有更改无效,但是如果我从编辑中删除嵌套属性字段,一切都很好
型号:
`class Webinar < ApplicationRecord
has_many :participant_webinars, dependent: :destroy
has_many :participants, through: :participant_webinars
end
class Participant < ApplicationRecord
has_many :participant_webinars, dependent: :destroy
has_many :webinars, through: :participant_webinars
accepts_nested_attributes_for :participant_webinars, allow_destroy: true
end
class ParticipantWebinar < ApplicationRecord
belongs_to :webinar, optional: true
belongs_to :participant, optional: true
end`
并编辑参与者:
`<hr>
<div class="form-group">
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<%= f.collection_check_boxes :webinar_ids, Webinar.all, :id, :name do |cb| %>
<% cb.label(class: "checkbox input_checkbox") {cb.check_box(class: "checkbox") + cb.text} %>
<% end %>
</div>
</div>
</div>
<% if @participant.webinars.exists? %>
<div class="form-group" >
<div class="row" >
<div class="col-sm-8 col-sm-offset-2" > <hr><hr>
<%= f.fields_for :participant_webinars do |d| %>
<%= d.hidden_field :participant_id, value: @participant.id %>
<%= render 'participants/participantconnected', d: d %>
<% end %>
</div>
</div>
</div>
<% end %>`
我可以编辑/更新连接的属性,但不能编辑/更新webinar_ids