Rails,Devise和Mongo - 我使用哪些版本?

时间:2012-03-15 00:37:40

标签: ruby-on-rails mongodb devise mongomapper

我目前正在尝试将一个Mongo数据库与Devise一起运行。我正在使用Rails 3.2.2和Ruby 1.9.3,mongo_mapper 0.11.0,设计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)

所以基本上,旧设备不起作用,最新版本与我当前的设计-mongo_mapper不兼容。有没有办法解决?无论是让所有这些程序一起工作的方法,还是一种不需要devise-mongo_mapper的方法都会很棒。

3 个答案:

答案 0 :(得分:1)

看看several of the forks

他们只是碰撞了gemspec中的版本,代码可能没有改变。

答案 1 :(得分:0)

您可以使用-v argument安装所需的任何宝石版本。

sudo gem install whatever -v 1.0.1

或者你可以看看Plastic Chicken建议的叉子。

答案 2 :(得分:0)

我也遇到了同样的错误,运行“捆绑更新”解决了我的问题。