什么时候ruby类“继承”了钩子方法?

时间:2015-02-02 15:43:31

标签: ruby

继承的钩子什么时候开火?

我问,因为在触发继承类中的任何代码之前我需要一种方法来启动它。

同时我不希望这段代码在父类中运行(这就是为什么我不能将代码转储到父类中)。

1 个答案:

答案 0 :(得分:1)

在评估子类的主体之前,调用基类的self.inherited方法(如果已定义)

这很容易向自己证明:

class Base
  def self.inherited(what)
    puts "base"
  end
end

class Child < Base
  puts "child"
end

输出

  


  子

但是,我无法保证这种情况。在你这样做之前,我不一定会认为对于所有当前的Ruby实现都是如此。