ruby - 在 Rails 中,如何向 String 类添加一个新方法?

标签 ruby ruby-on-rails-3 monkeypatching

我想为我的 Rails 项目中的不同对象构建一个索引,并想添加一个我可以在 String 对象上调用的“count_occurences”方法。

我看到我可以做类似的事情

class String
  def self.count_occurences
    do_something_here
  end
end

定义此方法的确切方法是什么,以及将代码放在我的 Rails 项目中的什么位置?

谢谢

最佳答案

您可以在lib/ext/string.rb 的应用程序中定义一个新类,并将以下内容放入其中:

class String
  def to_magic
    "magic"
  end
end

要加载此类,您需要在 config/application.rb 文件或初始化程序中要求它。如果您有许多这样的扩展,那么初始化程序会更好!加载方式很简单:

require 'ext/string'

to_magic 方法将在您的应用程序/控制台内的 String 类的实例 上可用,即:

>> "not magic".to_magic
=> "magic"

无需插件。

关于ruby - 在 Rails 中,如何向 String 类添加一个新方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490680/

相关文章:

ruby - 在 ruby 中分离出猴子斑 block ?

php - 解析带有名称的电子邮件地址(FROM 或 TO) - 不一定符合 rfc 2822

ruby - 我在哪里编写 Ruby 中的主要功能?

ruby - 如何调试 Ruby google-api-client 的 HTTP

javascript - 表单 Jquery 函数

ruby-on-rails-3 - application.html.erb 中的 Facebook OG 元标记

python 3 : Monkey-patched code not re-importable by multiprocessing

python - 在 Python 中修补类

ruby-on-rails - 为什么 RoR 不利用 native 扩展/代码内联技术?

ruby-on-rails-3 - 发送消息所需的发件人(返回路径、发件人或发件人)