Sig*_*Sig 4 initialization ruby-on-rails-3.2
我正在开发一个Rails(3.2)应用程序,我需要在应用程序启动时执行一些任务.
由于我想将逻辑保存在一个单独的文件中,我还创建了一个看起来像的lib/helinium.rb(使用虚拟运行方法)
class Helinium
def self.run
puts "running ...."
end
end
Run Code Online (Sandbox Code Playgroud)
我创建了一个简单的初始化文件config/initializers/perform_checks.rb
Helinium.run
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好.现在我希望将Helinium类放在一个模块中,这样两个文件分别看起来像
module Elemens
class Helinium
def self.run
puts "running ...."
end
end
end
Run Code Online (Sandbox Code Playgroud)
和
Elemens::Helinium.run
Run Code Online (Sandbox Code Playgroud)
但是当我尝试启动应用程序时,我得到了
未初始化的常量Elemens(NameError)
我在这里错过了什么吗?为什么找不到模块?
感谢,并有一个愉快的一天.
这有关于自动加载如何在Rails中工作的事情.
Rails不会自动要求/ lib下的所有内容.它只在您尝试使用与lib中的文件名匹配的新类名时自动加载.
您可以查看此帖子以获取更多信息:https:
//stackoverflow.com/a/9819938/1188913
要解决您的问题,您可以
require 'lib/helinium'
Run Code Online (Sandbox Code Playgroud)
要么
把类放到一个名为的文件夹中 lib\elemens