我正在通過關聯使用has_many並且無法使before_destroy回調觸發。我正在使用關聯類來關聯模型。before_destroy關係模型
class Relating < ActiveRecord::Base
belongs_to :relater, :polymorphic => true
belongs_to :related, :polymorphic => true
before_destroy :unset_reminders
end
例如,用戶可以添加到TvShows喜好列表,User.rb:
has_many :tv_shows, :through => :relateds, :source => :related, :source_type => 'TvShow'
我遇到的問題,與此刪除有關記錄的事情。
我能與用戶和電視節目:
user = User.find(1)
show = TvShow.find(1)
user.tv_shows << show
但是,當我想刪除這個協會,before_destroy不會被觸發:
user.tv_shows.delete(show)
但是,如果我破壞有關手動錄製,確實會觸發回調:
r = Relating.find(8012)
r.destroy
如何獲取dest之前羅伊被觸發了嗎?
由於
這可能會幫助: :我http://stackoverflow.com/questions/1896777/cascade-delete-in-ruby-activerecord-models –