У меня есть 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
Я пробовал зависимость:: 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