在运行时更改Rails cache_store?

时间:2012-12-10 18:08:10

标签: ruby-on-rails memcached dalli

我的应用程序具有允许管理员通过GUI更改cache_store配置的功能。然后新配置将立即生效。

我的production.rb中的默认cache_store:

config.cache_store = :memory_store

管理员可以选择更改为使用与Dalli商店的memcached。我试图更改Rails.application.config.cache_store:

Rails.application.config.cache_store = :dalli_store, 'localhost:11211', 'localhost:11212'

但是Rails.cache没有改变:

Rails.cache
=> <#ActiveSupport::Cache::MemoryStore entries=0, size=0, options={}>

有没有这样做?

1 个答案:

答案 0 :(得分:3)

缓存存储在应用程序初始化期间设置,并且不能在运行时更改。要实现您要执行的操作,您可以将缓存存储配置保留在配置文件中,然后重新启动整个应用程序。请参阅a similar questions answers以了解如何执行此操作。

免责声明:使用该方法,如果配置有问题,您可以轻松终止应用程序。