method_missing覆盖不起作用
我写了一个方便的ActiveRecord扩展来将方法委托给基础对象(基于多表inheritance )
class ActiveRecord :: Base def self.acts_as(base) class_eval%Q { def method_missing(method,* args,&blk) #{base} .send(method,* args,&blk) 救援NoMethodError 超 结束 } 结束 结束
我有一个州级和一个基类
#state class class MyState <ActiveRecord :: Base belongs_to:my_object acts_as:my_object 结束 #base class class MyObject 'MyState' has_one:tail,:class_name =>'MyState' 结束
当我尝试这个时,我发现它在某些情况下不起作用。 进一步来说,
> MyState.first.some_method_in_base 零 > MyObject.first.tail.some_method_in_base NoMethodError:未定义的方法`some_method_in_base'用于#
任何人都可以告诉我为什么一个工作而另一个不工作?