我有这个模型
class XmlImport < ActiveRecord::Base
belongs_to :video
belongs_to :user
has_many :events, through: :event_import_records, dependent: :destroy
has_many :event_import_records, dependent: :destroy
has_attached_file :xml
validates_attachment_content_type :xml, :content_type => ["text/xml"]
end
:event_import_records
条目正在被销毁。但:events
不是。
dependent:destroy
关联中的has_many through
是否有效?events
销毁与XmlImport
相关联的所有event_import_records
?答案 0 :(得分:0)
您可以在Rails API找到:&#34;如果使用:through选项,则连接模型上的关联必须是belongs_to,而删除的记录是连接记录,而不是而不是相关的记录。&#34;据我所知,它删除了连接记录,但没有删除关联。
如果我是你,我会尝试:
class EventImportRecord < ActiveRecord::Base
has_many :events, dependent: :destroy
end
如果不行,我交换了has_many
模型上XmlImport
关系的顺序,因为&#34;注意:依赖是使用Rails&#39;回调系统,通过按顺序处理回调来工作。因此,在:dependent选项之前或之后声明的其他回调可能会影响它的作用。&#34;也可以在Rails API的同一页面找到。