0

我有Board模型。每个Board都可Source以为其他Board。这种关系保存在Feed表中。

class Board < ActiveRecord::Base
  belongs_to :user
  has_many :links, dependent: :destroy
  has_many :feeds, dependent: :destroy
  has_many :sources, through: :feeds

  attr_accessible :description, :name, :user_id

  validates :name, presence: true
end

class Feed < ActiveRecord::Base
  belongs_to :board
  belongs_to :source, class_name: "Board"

  attr_accessible :board_id, :source_id

end

当我销毁Board记录时,它会销毁相应feeds的 . 但是如何做到这一点source

4

1 回答 1

0

你为什么不也用:dependent => :destroy

阅读从关联中删除:has_many、has_one 和 belongs_to 关联支持 :dependent 选项

如果这不起作用,您也可以使用 ActiveRecord 回调:

after_destroy do |record| 
 other = BoardsSources.find_by_board_id_and_source_id(record.board_id, record.source_id)
 other.destroy if other
end
于 2013-06-21T15:27:15.117 回答