Ошибка "неинициализированная константа MongoMapper :: Base" при выполнении rake mongo: mongrate - PullRequest
0 голосов
/ 31 января 2011

При попытке "rake mongo: mongrate" я получил следующую ошибку:

$ rake mongo:mongrate --trace
(in /home/mei/Jobfully)
** Invoke mongo:mongrate (first_time)
** Invoke environment (first_time)
** Execute environment

** Execute mongo:mongrate
==  AddPricingPlans: migrating ================================================
-- add_column(:users, :plan_id, :string)
rake aborted!
uninitialized constant MongoMapper::Base
/home/mei/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:440:in `rescue in load_missing_constant'

В моем Gemfile есть следующее -

gem 'rake', '~>0.8'
gem 'mongo',        '= 1.0.7'  # must be same version as bson/bson_ext
gem 'bson',         '= 1.0.4'  # must be same version as bson_ext/mongo
gem 'bson_ext',     '= 1.0.4'  # must be same version as bson/mongo
gem 'mongo_mapper', '~> 0.8.2'

Я также добавил следующую строкув Rakefile -

import 'vendor/plugins/mongrations/lib/tasks/mongo.rake'

Есть идеи, как я могу решить эту проблему?Благодаря.

1 Ответ

1 голос
/ 01 февраля 2011

MongoMapper::Base устарел где-то в прошлом году (он даже не существует!). Теперь вы хотите MongoMapper.connection в lib/mongo_mapper/mongrations.rb, def connection вместо MongoMapper::Base.connection.

Я не уверен, когда он сломался, но внесение этого изменения исправило меня.

Если вы хотите обезьянить его, вы можете использовать:

module MongoMapper
  class Base
    def self.connection
      MongoMapper.connection
    end
  end
end
...