在Ruby on Rails中放置预定义类(例如String,Symbol)扩展的正确位置在哪里?

我想将my_method添加到Symbol类,并且能够从app/helpers/application_helper.rb调用my_method

 module ApplicationHelper def my_helper my_symbol.my_method end end 

最适合放置的地方在哪里:

 class Symbol def my_method  end end 

我认为将您的本机类扩展保留在lib文件夹中的新文件中并且require在您的environment.rb文件中执行它们。

我通常会创建一个名为monkey_patches.rb(或类似文件)的文件 – 所以补丁的位置非常明显 – 然后在config / initializers中使用初始化程序加载它。 这就是他们的目的!