覆盖ruby中的类方法

时间:2012-04-16 18:14:15

标签: ruby

我正在尝试覆盖另一个gem的方法。代码看起来像这样:

module DatabaseCleaner
  class Base
    def orm_strategy(strategy)
      # ...
    end
  end
end

在我的宝石中:

require 'database_cleaner/base'

module DatabaseCleaner
  class Base
    def orm_strategy(strategy)
      # New code
    end
  end
end

然而,原版仍在使用中。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您正在尝试覆盖Foo::Bar类的实例方法。你必须重新定义类的方法:

module Foo
  class Bar
    def self.test  # self == Bar
      # New code
    end
  end
end