2013-03-20 36 views
3

我在lib目录中有一个类:lib \ db_cache.rb,它定义了类DbCache。未在生产中加载Rails lib类,在dev中工作正常

我的Rails模型可以在开发模式下访问它,也可以在生产模式下运行rails控制台。

但是当我运行的生产模式轨服务器,模型类,如美孚,抱怨“未初始化常量”富:: 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”在我的模型类:(

回答

0

的问题似乎与启用它是完全没有有

extend DbCache 
模型中的类定义

的情况下config.threadsafe!在/config/environments/production.rb

这是我有什么:

# Enable threaded mode 
    if defined?(Rails::Server) 
    puts "Rails Server running - so enable threadsafe!" 
    config.threadsafe! 
    end 

由于我使用JRuby,我不相信这是这么大的一个问题。至少,当我删除这些线,事情效果更好:)

1

这听起来像你想扩展一个类。在没有看到db_cache.rb文件我可以”知道肯定。

如果是

相关问题