Has_many通过与依赖关联:破坏而不是破坏

时间:2015-03-28 00:04:48

标签: ruby-on-rails activerecord has-many-through

我有这个模型

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

1 个答案:

答案 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的同一页面找到。