我在 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 - why would a model inside RAILS_ROOT/lib not be available in production mode?和 Best way to load module/class from lib folder in Rails 3?但这似乎对我的情况没有帮助。
在此先感谢您对此的任何想法。
PS 我现在的解决方法是在我的模型类中要求“db_cache”:(
最佳答案
听起来您正在尝试扩展一个类。如果没有看到 db_cache.rb 文件,我无法确定。
如果是这样的话,那就太好了
extend DbCache
在你的模型类定义中
关于ruby - Rails lib 类未在生产中加载,在开发中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533006/