我在rails应用程序中有以下一对模型。它们使用single table inheritance实施。为什么我的父母回调没有发射?
class Parent < ActiveRecord::Base
before_save :callback
private
def callback
puts "executing parent callback"
end
end
class Child < Parent
before_save :callback
private
def callback
puts "executing child callback"
end
end
我想两个母公司的callback
和孩子的callback
火每当我保存记录,但我不能让这种行为的工作。目前,当我保存一个Child时,只有该类中定义的回调运行。
0123'表示在操作子类时应自动触发父回调(请参阅“可继承回调队列”一节)。这在我的代码中没有发生。
有谁知道为什么不呢?
他们不会覆盖彼此,因为他们被命名为相同?并应该方法的名称是:parentCallback,:childCallback而不是只是回调? – iouri
啊。好的,所以我从来没有真正使用名为'parentCallback'和'childCallback'的回调来运行代码。当我将代码粘贴到S.O中时,我迅速更改了回调名称。因为我(愚蠢)认为这会让问题更具可读性。 –
在我实际运行的代码中,两个回调函数都被命名为'callback'。我刚刚编辑了这个问题来反映这一点。这就是问题所在!我想这两个名字相同的回调是互相覆盖的。 –