2011-01-31 3 views
0

나는 나의 동안 다음 오류가 발생했습니다 "레이크 몽고 : mongrate"시도 :"초기화되지 않은 상수 MongoMapper :: 자료"오류 : 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에 다음과 같은 한 -

내가 해결할 수있는 방법에

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

어떤 아이디어 -

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에 다음 줄을 추가 이 문제? 감사.

답변

1

MongoMapper::Base은 작년에 언젠가 사용 중지되었습니다 (더 이상 존재하지 않습니다!). 이제 MongoMapper::Base.connection이 아닌 lib/mongo_mapper/mongrations.rb, def connectionMongoMapper.connection을 입력해야합니다.

언제 고장이 났는지는 잘 모르겠지만, 그 변화를 만들 때 저의 언어가 고정되어 있습니다. 당신이 그것을 monkeypatch하려면

, 당신은 사용할 수 있습니다

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

감사합니다, 크리스. 나는 네가하는 말을 보았다. 또한 "vendor/plugins/mongrations/lib/mongo_mapper/migrator.rb"파일의 "def proper_table_name"에 "MongoMapper :: Base.table_name_prefix"및 "MongoMapper :: Base.table_name_suffix}"가 있음을 발견했습니다. MongoMapper :: Base에 대한이 참조를 어떻게 수정할 수 있습니까? 도움 주셔서 감사합니다. – Mei

+0

몇 분 정도 기다려야한다면, 나는 그들을 고쳐서 테스트와 함께 보석으로 풀어 놓을 것입니다. 당신은 보석을 설치하고 갈 수 있어야합니다. –

+0

@mei :'gem install mongrations', config.gem 또는 Gemfile에 포함 시키십시오. 자세한 정보는 https://github.com/cheald/mongrations를 참조하십시오. –

관련 문제