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'用于#

任何人都可以告诉我为什么一个工作而另一个不工作?