在我的rails应用程序中,有一个像这样的树状模型:
class File
belongs_to :parent, :foreign_key => "parent_id", :class_name => "File"
end
我想为父设置器的行为添加功能。这样的事情(除了它不起作用)?
def parent=(new_parent)
super(new_parent)
# Additional stuff I want to do here
end
我需要默认行为仍然存在,因为我认为它管理关系,但我需要知道什么时候父更改,所以我可以做一些额外的任务。
答案 0 :(得分:0)
我目前的解决方法是:
class File
belongs_to :parent, :foreign_key => "parent_id", :class_name => "File"
before_save :check_parent
def check_parent
if self.parent_id_changed?
# Additional stuff I want to do here
end end end
唯一的缺点就是你需要为此付出代价。理想情况下,我希望在parent_id改变后立即启动。否则,这可以正常工作,但我会接受更好的解决方案。