我正在使用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_something
中所述的方法A
似乎不被acts_as_something
中所述的方法覆盖{ {1}}:当我检查与B
类的acts_as_something
方法相关的参数时,仍会引用B
,:arg1A
,:arg2A
(< em> not to :argNA
,:arg1B
,:arg2B
)。
可能发生了什么?如何正确覆盖:argNB
方法?
答案 0 :(得分:0)
acts_as_something :arg1A, :arg2A, :argNA
行不是方法定义,而是在类的范围内调用类方法。因此,您无法覆盖它们。
但是,取决于&#34; acts_as&#34;的实施情况。您可以覆盖它们在子类中的效果的方法。但这完全取决于&#34; acts_as&#34;有问题的方法确实......