【问题标题】:Has_many through association with dependant: destroy not destroyingHas_many 通过与依赖关联:销毁而不是销毁
【发布时间】:2015-06-01 10:52:35
【问题描述】:

我有这个模型

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 不是。

  • has_many through 关联上的dependent:destroy 是否有效?
  • 还有其他写法吗?如果不正确
  • 如何通过event_import_records 销毁与XmlImport 关联的所有events

【问题讨论】:

  • 这是我找到的,希望对你有帮助link
  • 我读过那个问题,但在那个问题中,他遇到的问题是我已经解决的问题!还是谢谢!

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


【解决方案1】:

您可以在Rails API 找到:“如果使用 :through 选项,则连接模型上的关联必须是belongs_to,并且被删除的记录是连接记录,而不是关联记录。 "我知道它删除了连接记录,但没有删除关联的 by。

如果我是你,我会尝试:

class EventImportRecord < ActiveRecord::Base
  has_many :events, dependent: :destroy
end

如果不起作用,我在XmlImport 模型上交换has_many 关系的顺序,因为“注意:依赖是使用Rails 的回调系统实现的,该系统通过按顺序处理回调来工作。因此,其他回调在 :dependent 选项之前或之后声明会影响它的作用。”也可以在 Rails API 的同一页面找到。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多