我想将我的 gem Monkey 补丁放入例如 /lib/gem_ext/i18n.rb 中:
module GemExt
module I18n
def self.translate(*args)
raise 'ok'
end
end
end
...并通过 Rails 初始化程序 gem_ext.rb 混入到 gem 中。
我试过:
a) I18n.send :include, GemExt::I18n
b) I18n.send :include, GemExt::I18nExt
c) I18n.module_eval { include ::GemExt::I18n }
d) I18n.module_eval { include ::GemExt::I18nExt }
但是在重新启动 Rails 控制台后,它不会在 I18n.translate("key") 上引发此异常,但会显示原始行为,并且新声明的方法会引发 NoMethodError。