Ruby on rails Rails库包括

Ruby on rails Rails库包括,ruby-on-rails,include,Ruby On Rails,Include,关于lib目录中定义的模块,我有一个令人费解的问题 我有两个文件 #lib/authentication.rb module Authentication end #lib/test_module.rb module TestModule end 在我的应用程序控制器中,我有 class ApplicationController < ActionController::Base include Authentication include TestMo

关于lib目录中定义的模块,我有一个令人费解的问题

我有两个文件

#lib/authentication.rb

module Authentication

end


#lib/test_module.rb

module TestModule

end
在我的应用程序控制器中,我有

 class ApplicationController < ActionController::Base
     include Authentication
     include TestModule
 end
class ApplicationController
身份验证模块正确加载,但TestModule未正确加载

我得到“未初始化的常量ApplicationController::TestModule”

我被难住了。。。有人吗


编辑:有人知道我可以在哪里调试这个吗?

在应用程序控制器文件的顶部添加
require'lib/test\u module'
可能会有所帮助从Rails 3开始,确保将
lib
目录添加到
config/application.rb
中的
config.autoload\u路径中,以便读取包含模块的文件并加载模块

config.autoload_paths += %W(#{config.root}/lib)
查找有关此和加载子目录的更多信息


另外,“您不应该在rails应用程序中使用require,因为它会阻止ActiveSupport::Dependencies正确地[un]加载该代码。”

愚蠢的问题,但您是否重新启动了服务器?如果没有,重新启动进程是否解决了问题?是的,我尝试过重新启动。服务器在之后无法启动。尝试了那个,这就是我没有得到要加载的文件的原因--lib/test_模块(MissingSourceFile)你确定文件在正确的位置吗??因为require语句找不到它…我确信它在正确的位置,但我再次检查了一遍。出于某种原因,文件名为test_module.r?b。这很奇怪,因为它在TextMate(我创建文件的地方)中显示为.rb。我重新命名了这个文件,它成功了。谢谢你花时间在这件事上,我太困惑了,需要再看一眼。