gem - 导轨 3 : How to override a method in a gem

标签 gem monkeypatching ruby-on-rails-3

我想在 gem 中的方法之一中添加一些自定义代码。在 Rails 2.3.8 中,我在 config/initializers 目录下添加了一个 .rb 文件,一切正常。

自从转移到 Rail3 后,以前的工作不再有效。我曾尝试在 config/initializers 下和/lib 下添加一个 mongoid_slug.rb 并在 application.rb 中 auto_load/lib 路径。两者都不起作用。

在 mongoid_slug.rb 里面我试过:

module Mongoid
  module Slug    
     module ClassMethods  
         def find_unique_slug  
             #mycode   
         end  
     end  
  end  
end


Mongoid::Slug::ClassMethods.module_eval do   
  def find_unique_slug  
    #mycode  
  end  
end  

尽管如此,两者都失败了。任何人都可以提供一些关于如何在 Rails3 中修补 gem 的提示?
谢谢!

最佳答案

这对我有用,

module Mongoid
  module Slug    
     module ClassMethods  
         def find_unique_slug  
             #mycode   
         end  
     end  
  end  
end

其他问题,我认为在包含此文件或调用此方法时
应该包括:
包括 Abt::I18n
在 ApplicationHelper 或其他地方

关于gem - 导轨 3 : How to override a method in a gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5592720/

相关文章:

ruby-on-rails -/vendor/gems 中的自定义 Gem 未加载

ruby - 如何使用 rbenv 在不使用 sudo 的情况下全局安装 gem?

ruby - 如何编写将对其进行修改的 String monkeypatch 方法

ruby-on-rails - 验证用户! Api 版本控制轨后方法不起作用

用于同时发出多个 HTTP 请求的 Ruby 库

ruby - 法拉第 : you may want to install system_timer for reliable timeouts

python - 检查猴子补丁方法的身份

python - 如何使用 pytest 验证函数是否已命中

ruby-on-rails - Windows/Ruby/Rails 安装 --- .cannot load such file -- sqlite3/sqlite3_native windows

ruby-on-rails - "No explicit conversion of Symbol into String"用于 rails 4.0.1 中的新记录(仅限)