Ruby on rails 如何在gem中的模块中重写类方法?

Ruby on rails 如何在gem中的模块中重写类方法?,ruby-on-rails,module,omniauth,saml,Ruby On Rails,Module,Omniauth,Saml,我正试图在一个失败的创业板上添加一个拯救声明。问题是我没有正确地覆盖原始gem的方法。我怎样才能做到这一点 原始宝石 module OmniAuth class Configuration include Singleton def add_camelization(name, camelized) self.camelizations[name.to_s] = camelized.to_s end 初始化者/omniauth.rb modu

我正试图在一个失败的创业板上添加一个拯救声明。问题是我没有正确地覆盖原始gem的方法。我怎样才能做到这一点

原始宝石

module OmniAuth
  class Configuration
    include Singleton
      def add_camelization(name, camelized)
        self.camelizations[name.to_s] = camelized.to_s
      end
初始化者/omniauth.rb

module OmniAuth
  class Configuration
    def add_camelization(name, camelized)
      begin
        self.camelizations[name.to_s] = camelized.to_s
      rescue
        puts "No camelization for #{camelized}"
      end
      # ^ This rescue statement is not being called to replace the original gem's method.
    end
  end
end
试一试


好奇的是,您是否尝试过使用alias\u method\u chain?好奇的是,为什么会将其标记为“saml”?这将集成到omniauth的saml策略中。。因此,我在其中添加了额外的saml标记,以防这对于走同一条路的人来说很常见。。
OmniAuth::Configuration.class_eval do
    def add_camelization(name, camelized)
        ...
    end
end