関連付けを介して has_many を使用していますが、before_destroy コールをトリガーに戻すのに問題があります。Relating クラスを使用してモデルを関連付けています。
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'
私が抱えている問題は、この Relating レコードの削除に関係しています。
ユーザーとテレビ番組を次の方法で関連付けることができます。
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
これをトリガーする前に破棄するにはどうすればよいですか?
ありがとう