假设我需要更改rails项目中需要的某个ruby gem的功能。我想把ruby gem的所有内容放在主项目中。
这可能吗?有其他方法吗?
谢谢你

最佳答案

您可以通过“monkeypatching”特定的方法来实现这一点为此,您需要创建一个覆盖要修改的方法的初始值设定项例如,创建config/initializers/monkeypatch.rb并覆盖方法:

class String
  def inspect
    puts "Im monkeypatched!"
  end
end

然后创建字符串并调用inspect时,您将看到该方法已被修补。另外,使用monkeypatching时应该小心,因为它可能会有一些不必要的副作用,特别是当您修补非常基本的类(如String或Fixnum类)时。

10-07 17:53