2011-09-14 54 views
1

我有我的RAILS_HOME/lib文件夾中的類(RedisConfig)管理的配置數據(Redis服務器的主機/文章)。我們決定使用redis-store作爲我們的緩存。如何在我的RAILS_HOME/config/environments/*文件的RAILS_HOME/lib文件夾中使用類?

這是我們在RAILS_HOME /配置/環境/ production.rb:

config.cache_store = RedisStore.new "#{RedisConfig.host}:#{RedisConfig.port}" 

我,當然,作爲RedisConfig加載後production.rb加載得到一個TypeError,所以它永遠存在在這方面。在我們的environment.rb或environments /#{RAILS_ENV} .rb文件中加載和使用此配置管理器的最佳策略是什麼?

回答

1

考慮採取this approach。這裏的訣竅是它們在初始化階段被加載 - 這與把它作爲初始化程序本身一樣。

請參閱this SO post載入您的RedisConfig模塊。雖然這是關於引擎,但它有一些interesting details on initialisation

更新

這裏有一個更好的解決方案 - 更新application.rb中如下

# Custom directories with classes and modules you want to be autoloadable. 
# config.autoload_paths += %W(#{config.root}/extras) 
config.autoload_paths += Dir["#{config.root}/lib/**/"] 

這將自動加載存儲在/ lib中的所有模塊。

相關問題