#inherited在Foo语句之后被调用.我想要的东西只能在关闭类声明的结束语句之后运行.
class Class def inherited m puts "In #inherited for #{m}" end end class Foo puts "In Foo" end puts "I really wanted to have #inherited tiggered here." ### Output: # In #inherited for Foo # In Foo # I really wanted to have #inherited tiggered here.
有什么事情存在吗?可以创建吗我完全没有运气吗?
解决方法
你可能没有运气.但这只是一个警告,而不是一个明确的答案.
Ruby钩入类定义的开始,而不是结束,对于Class#继承的b / c ruby类定义没有真正的结束.他们能
随时重新开放
有some talk a couple years ago about adding a const_added trigger,但还没有经历. From Matz:
I’m not going to implement every possible hook. So when somebody
comes with more concrete usage,I will consider this again. It would
beconst_added
,notclass_added
.
所以这可能会处理你的情况 – 但是我不确定(它最终可能在最终实现的时候触发).
你试图用这个触发器做什么?可能还有另一种办法.