1

我在 Rails 应用程序中有以下一对模型。它们是使用单表继承实现的。

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都会触发,但我无法让这种行为起作用。目前,当我保存一个孩子时,只有该类中定义的回调运行。

Rails 文档说父回调应该在子类被操作时自动触发(参见“可继承回调队列”部分)。这在我的代码中没有发生。

有谁知道为什么不?

4

1 回答 1

2

你试过这样做吗?方法名称正在相互覆盖。

class Parent < ActiveRecord::Base
  before_save :parent_callback

  private 
  def parent_callback
    puts "executing parent callback"
  end
end

class Child < Parent
  before_save :child_callback

  private 
  def child_callback
    puts "executing child callback"
  end
end
于 2012-09-22T01:03:50.803 回答