Не удалось найти адаптер кэша для redis_store

У меня есть приложение Rails 3.1.3 и пытаюсь подключить к нему gem "redis".

Я добавил следующий gem в Gemfile:

gem "redis-store"

После этой статьи я добавил следующий код в среду /development.rb:

config.gem "redis-store", :lib => "redis-store"
require "redis-store" # HACK
config.cache_store = :redis_store

Приложение не запускается, жалуясь на cache_store:

/gems/activesupport-3.1.3/lib/active_support/cache.rb:65:in `lookup_store ': не удалось найти адаптер кэша для redis_store (нет такого файла для загрузки - active_support/cache/redis_store) ( RuntimeError).

Я понял это, включая gem "redis-rails" вместо "redis-store", но я получаю еще одну ошибку:

/Users/AntonAL/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `gem ': redis-store - это а не частью пучка. Добавьте его в Gemfile. (Gem:: LoadError)

Сохраняя их оба...

gem 'redis-store'
gem 'redis-rails'

... дает еще одну ошибку

…gems/redis-rails-0.0.0/lib/redis-rails/version.rb:1: Redis is not a module (TypeError)
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
    from …/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
    from …/gems/redis-rails-0.0.0/lib/redis-rails.rb:1
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `require'
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    from …/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    from …/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    from …/config/application.rb:11
    from …/gems/railties-3.1.3/lib/rails/commands.rb:52:in `require'
    from …/gems/railties-3.1.3/lib/rails/commands.rb:52
    from …/gems/railties-3.1.3/lib/rails/commands.rb:49:in `tap'
    from …/gems/railties-3.1.3/lib/rails/commands.rb:49
    from script/rails:6:in `require'
    from script/rails:6

Помогите, пожалуйста!

Ответ 1

попробуйте

gem 'redis-store', '~> 1.0.0'

Ответ 2

FYI... У меня были подобные проблемы, пока я не добавил все мои данные в мой Gemfile. Я запускаю Rails 3.2.3.

    gem 'redis'
    gem 'redis-store'
    gem 'redis-rails'

Ответ 4

Я предполагаю, что это то, что вы имели в виду в своем комментарии, AntonAL - это то, что сработало для меня:

gem 'redis-rails', RAILS_VERSION # Where RAILS_VERSION matches the version of your rails gem

Не может быть проще, чем это:)