2013-03-20 53 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文件我可以」知道肯定。

如果是

相關問題