我在 lib 目录中有一个类:lib\db_cache.rb,它定义了类 DbCache。
我的 Rails 模型可以在开发模式下以及在生产模式下运行 rails 控制台时访问它。
但是当我运行生产模式 Rails 服务器时,模型类,例如 Foo,抱怨“未初始化的常量”Foo::DbCache,
org/jruby/RubyModule.java:2677:in `const_missing',
org/jruby/RubyMethod.java:134:in `call'
我在 application.rb 中有这一行
config.autoload_paths += %W(#{Rails.root}/lib)
我还尝试了链接的 SO 问题中显示的其他变体 - 但没有任何乐趣。
我在 Linux 上使用 jruby 1.7.3 (1.9.3p385) - Java 1.7.0_13-b20。Rails 是 3.2.12 版本。
我已经看到这些问题Rails - 为什么 RAILS_ROOT/lib 中的模型在生产模式下不可用?以及从 Rails 3 中的 lib 文件夹加载模块/类的最佳方法?但这似乎对我的情况没有帮助。
提前感谢您对此的任何想法。
PS我现在的解决方法是在我的模型类中要求'db_cache':(