2012-03-19 43 views
11

Tôi có ứng dụng Rails 3.1.3 và cố gắng cắm gem "redis" vào đó.Không thể tìm bộ điều hợp lưu trữ bộ nhớ cache cho redis_store

Tôi đã thêm đá quý sau vào Gemfile:

gem "redis-store"

Tiếp theo bài viết này, tôi đã thêm mã để môi trường sau/development.rb:

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

Ứng dụng sẽ không bắt đầu, phàn nàn với cache_store:

/gems/activesupport-3.1.3/lib/active_support/cache.rb:65:in `lookup_store ': Không tìm thấy bộ lưu trữ bộ nhớ cache cho redis_store (không tải tệp như vậy - active_support/cache/redis_store) (RuntimeError).

Tôi đã figured it out, bao gồm đá quý "redis-ray" thay vì "redis-store", nhưng tôi nhận được một lỗi:

/Users/AntonAL/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `gem': redis-store is not part of the bundle. Add it to Gemfile. (Gem::LoadError)

Giữ cả hai ...

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

… đưa ra một lỗi khác

…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 

Trợ giúp, vui lòng!

Trả lời

9

thử

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

Cảm ơn, gần đây tôi cũng tìm thấy một giải pháp. Tôi có thể chỉ định phiên bản "redis-store" khớp với phiên bản môi trường đường ray của tôi. – AntonAL

+0

Blam! Cảm ơn một triệu million.rand – Trip

9

FYI ... Tôi đã có vấn đề tương tự cho đến khi tôi thêm tất cả những điều sau đây để Gemfile tôi. Tôi đang chạy Rails 3.2.3.

gem 'redis' 
    gem 'redis-store' 
    gem 'redis-rails' 
+8

Tôi đã có một vấn đề tương tự với Rails 3.2.3. Tôi đã thay thế 'gem' redis-store'' bằng 'gem' redis-rails'' và mọi thứ đều ổn. – Ross

+1

Điều này là thừa - 'redis-rails' bao gồm hai đá quý khác là phụ thuộc – Yarin

0

Tôi giả định này là những gì bạn có nghĩa là trong bình luận của bạn, AntonAL - đây là những gì làm việc cho tôi:

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

Không thể nhận được bất kỳ đơn giản hơn mà :)

+1

Rằng các phiên bản này xảy ra đồng bộ là trùng hợp ngẫu nhiên. Chắc chắn không phải là cách được khuyến khích để sử dụng Gemfile. – jordanpg

Các vấn đề liên quan