我试图在我的Rails 4.2应用程序中扩展String类。我创建了一个 lib / string.rb 文件来保存扩展名。
class String
def testing
"testing"
end
end
我将lib
添加到application.rb。
config.autoload_paths << Rails.root.join('lib')
当我启动rails控制台并执行"".testing
时,我得到NoMethodError: undefined method 'testing' for "":String
任何人都可以解释为什么这个方法没有被提取?我有预感,因为String
常量已经加载,所以Rails不会#39; t需要自动加载常量。因此,它永远不会尝试加载lib/string.rb
文件,我的方法永远不会被添加到String。
当我在初始化程序中明确要求该文件时,我可以加载该方法,但是如果我更改了该方法,我必须重新启动服务器以获取rails以查看更改。感觉我错过了什么。看起来应该有办法让Rails自动读取核心扩展类并在文件更改时重新加载它们。
答案 0 :(得分:2)