每当我尝试使用“script / runner -e production ClassName.run”从我的rails 2.2 app的lib目录运行任何类时,我收到以下错误:
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/runner.rb:47:
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:89:in `const_missing': uninitialized constant ClassName (NameError)"
由于某些原因,当我以test
而不是production
运行时,我不会收到此错误,并且一切正常。
run
是一种类方法,即def self.run .... end
有什么建议吗?
答案 0 :(得分:10)
当ruby找不到类或模块时,会发生该错误。我将从以下开始:
希望有所帮助。
更新只是总结一下选项4的评论。
除非您只想在生产中加载lib,否则您应该考虑通过执行以下操作之一来确保所有环境加载lib:
答案 1 :(得分:1)
我在同一个文件上有多个类定义(所有STI类)。当我将定义分成各自的文件时,它就可以了。