0

ジェム モンキー パッチを /lib/gem_ext/i18n.rb などに配置したい:

module GemExt
  module I18n
    def self.translate(*args)
      raise 'ok'
    end
  end
end

... そして、Rails 初期化子 gem_ext.rb を介して gem に mixin します。

私は試した:

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 を発生させます。

4

2 に答える 2

2

モンキーパッチメソッドを使いたい場合はI18n.translate/lib/gem_ext/i18n.rb に書くだけで、GemExt モジュールは必要ありません。

module I18n
 def self.translate(*args)
   raise 'ok'
 end
end
于 2012-05-21T11:17:01.160 に答える