具有许多贯穿和嵌套属性的更新错误

时间:2019-05-03 15:49:11

标签: ruby-on-rails

我有一个带有嵌套属性的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

0 个答案:

没有答案