【问题标题】:Cannot load redis cash store无法加载 redis 现金商店
【发布时间】:2018-09-26 16:14:03
【问题描述】:

当我在 develompent.rb 中使用此配置在本地启动 rails 服务器(rails 5.2.0,ruby 2.5.1)时

config.action_controller.perform_caching = true  
config.cache_store = :redis_cache_storage

安装了 gem redis '4.0.1'

我有这个错误:

Traceback(最近一次通话最后一次)

.rvm/gems/ruby-2.5.1@rails-test/gems/activesupport-5.2.0/lib/active_support/cache.rb:109:in `rescue in retrieve_store_class': Could not find cache store adapter for redis_cache_storage (cannot load such file -- active_support/cache/redis_cache_storage) (RuntimeError)

有什么想法吗?

【问题讨论】:

  • 尝试在您的 gem 文件中使用 gem 'redis-rails', '~> 5'

标签: ruby-on-rails ruby-on-rails-5.2


【解决方案1】:

我不确定你从哪里得到:redis_cache_storage,但这不会起作用,因为它不是 Rails 的一部分; Rails 不包含将 Redis 用作开箱即用缓存的代码。您需要使用 redis-rails gem 来使用 Redis 作为 Rails 的缓存:

将此添加到您的 Gemfile:

gem 'redis-rails'

然后将其添加到您的配置中:

# config/application.rb
config.cache_store = :redis_store, "redis://localhost:6379/0/cache", { expires_in: 90.minutes }

有关配置 gem 的更多信息和选项,请访问 https://github.com/redis-store/redis-rails

【讨论】:

  • 不确定 redis_cache_storage 但 Rails 文档在这里提到了 redis_cache_store:guides.rubyonrails.org/…
  • 好点。默认情况下仍然不是 Rails 内置的,因为它需要添加外部依赖项,但你是对的!
  • 我认为它现在包含在 Rails 5.2 中 - 如果您查看 Github (github.com/redis-store/redis-rails) 上的 redis-rails gem,他们会说:“关于 Rails 5.2 Rails 5.2.0 的快速说明包括 Redis开箱即用的缓存存储"
  • 当我说不是内置时,我的意思是 you have to add the redis gem 让它工作。
猜你喜欢
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多