0

我正在使用 Ruby 1.9.2 和 Ruby on Rails 3.2.2。我有以下陈述:

class A < ActiveRecord::Base
  acts_as_something :arg1A, :arg2A, :argNA
end

class B < A
  acts_as_something :arg1B, :arg2B, :argNB
end

在继承 ( ) 时,中所述的方法B < A似乎没有被中所述的方法覆盖:当我检查与类的方法相关的参数时,那些仍然指的是, , (而不是, , )。acts_as_somethingAacts_as_somethingBacts_as_somethingB:arg1A:arg2A:argNA:arg1B:arg2B:argNB

可能发生了什么?如何正确覆盖该acts_as_something方法?

4

1 回答 1

0

这些acts_as_something :arg1A, :arg2A, :argNA行不是方法定义,而是类范围内的类方法调用。因此,您不能覆盖它们。

但是,根据“acts_as”方法的实现,您可以覆盖它们在子类中的效果。但这完全取决于所讨论的“acts_as”方法的作用......

于 2012-10-25T15:10:46.343 回答