Rails, Devise и Mongo - Какие версии я использую? - PullRequest
0 голосов
/ 15 марта 2012

В настоящее время я пытаюсь запустить базу данных Mongo вместе с Devise. Я использую Rails 3.2.2 и Ruby 1.9.3, mongo_mapper 0.11.0, devise 1.1.9 и devise-mongo_mapper 0.0.2. Я ссылался на многочисленные источники в Интернете, но они, похоже, неизменно устарели.

Огромная проблема, с которой я сейчас сталкиваюсь, связана с devise-mongo_mapper. Когда mongod работает на терминале, попытка запустить сервер rails дает мне следующее:

/usr/local/lib/ruby/gems/1.9.1/gems/devise-1.1.9/lib/devise.rb:193:in `mailer=': undefined method `ref' for ActiveSupport::Dependencies:Module (NoMethodError)
from /usr/local/lib/ruby/gems/1.9.1/gems/devise-1.1.9/lib/devise.rb:195:in `<module:Devise>'
from /usr/local/lib/ruby/gems/1.9.1/gems/devise-1.1.9/lib/devise.rb:4:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /home/neilbasu/Desktop/rails_practice_app/onemoremongopractice/config/application.rb:13:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `block in <top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `tap'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

Я проверил онлайн и обнаружил, что это может быть потому, что мое устройство не обновлено. Попытка обновить это дала мне это:

Bundler could not find compatible versions for gem "devise":
  In Gemfile:
    devise-mongo_mapper (>= 0) ruby depends on
      devise (~> 1.1.0) ruby

    devise (2.0.4)

Так что, по сути, старое устройство не будет работать, а новейшая версия не совместима с моим текущим devise-mongo_mapper. Есть ли способ обойти это? Либо способ заставить все эти программы работать вместе, либо способ вообще не нуждаться в devise-mongo_mapper.

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Взгляните на несколько вилок .

Они просто подняли версию в gemspec, и код, вероятно, работает без изменений.

0 голосов
/ 18 февраля 2013

Я также столкнулся с той же ошибкой, и запуск " обновления пакета " решил мою проблему.

0 голосов
/ 16 марта 2012

Вы можете установить любую нужную версию драгоценного камня, используя -v argument.

sudo gem install whatever -v 1.0.1

Или вы можете посмотреть на вилки, как предложил Пластиковый Цыпленок.

...