class Actor < ActiveRecord::Base
has_and_belongs_to_many :movies
before_destroy :remove_orphaned_initialize
after_destroy :remove_orphaned
private
def remove_orphaned_initialize
@instvariable = self.movies
end
def remove_orphaned
@instvariable.each do |m|
m.destroy if m.actors.empty? and m.titles.empty? ##movies also have habtm with Title
end
end
end
アクター レコードを削除しても、remove_orphaned で @instvariable が nil であるため、オーファン ムービーは削除されません。
どうすればそれを達成できるか説明していただけますか。
destroy の前に remove_orphaned を呼び出しようとすると、m.actors が空になることはありません。現在のドクター インスタンスがまだ削除されていないためです。