Рельсы с Mongo Mapper - PullRequest
       4

Рельсы с Mongo Mapper

2 голосов
/ 03 июня 2011

Это худший день для обучения рельсам.Уже не удалось подключиться и настроить для sqlite3, базы данных mysql я обратился к Mongo Mapper и столкнулся с теми же проблемами.Когда я пытаюсь запустить сервер rails, я получаю следующее:

/usr/local/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `require': no such file to load -- mongo_mapper (LoadError)

Я уже установил gem mongo_mapper, но когда я делаю 'which mongo_mapper', он ничего не возвращает.

Вот мой файл mongo_config.rb, помещенный в папку инициализаторов:

require "rubygems"
require "mongo_mapper"

MongoMapper.database = "blog-#{Rails.env}"

ОБНОВЛЕНИЕ 1:

Я изменил следующее:

require "rubygems"
include MongoMapper

MongoMapper.database = "blog-#{Rails.env}"

И теперь я получаю следующую ошибку:

   /Users/azamsharp/Projects/railsprojects/blog/config/initializers/mongo_config.rb:2: uninitialized constant MongoMapper (NameError)

Ответы [ 3 ]

4 голосов
/ 03 июня 2011

Вы должны использовать упаковщик с направляющими 3 . не пытайтесь не использовать это. добавьте следующее в ваш Gemfile

source 'http://gemcutter.org'
source 'http://rubygems.org'

gem "rails", "3.0.7"
gem 'bson', "1.1.1"
gem 'bson_ext', "1.1.1"
gem 'mongo_mapper'

затем запустите

bundle install

тогда rails server будет работать

4 голосов
/ 01 октября 2011

Чтобы заставить mongo_mapper работать в Rails (протестировано в Rails 3.1, должно работать и в Rails 3.0.x), вам необходимо выполнить следующие шаги:

  1. В Gemfile,добавьте mongo_mapper и bson gem:

    gem 'mongo_mapper'
    gem 'bson_ext'
    
  2. Запустите установку пакета

  3. В каталоге config / создайте файл mongo.yml, напримервот этот:

    # config/mongo.yml
    
    defaults: &defaults
      host: 127.0.0.1
      port: 27017
    
    development:
      <<: *defaults
      database: db_development
      username: user
      password: password
    
    test:
      <<: *defaults
      database: db_test
    
    # set these environment variables on your prod server
    production:
      <<: *defaults
      database:
      username:
      password:
    
  4. В каталоге config / initializers создайте файл mongo.rb, например:

     # config/initializers/mongo.rb
    
     #include MongoMapper
    
     db_config = YAML::load(File.read(File.join(Rails.root, "/config/mongo.yml")))
     #
     if db_config[Rails.env] && db_config[Rails.env]['adapter'] == 'mongodb'
       mongo = db_config[Rails.env]
       MongoMapper.connection = Mongo::Connection.new(mongo['host'] || 'localhost',
                                                  mongo['port'] || 27017,
                                                 :logger => Rails.logger)
       MongoMapper.database = mongo['database']
    
       if mongo['username'] && mongo['password']
         MongoMapper.database.authenticate(mongo['username'], mongo['password'])
       end
     end
    
     # Used for image uploads
     # CarrierWave.configure do |config|
     #   mongo = db_config[Rails.env]
     #   config.grid_fs_database = mongo['database']
     #   config.grid_fs_host = mongo['host'] || 'localhost'
     #   config.grid_fs_access_url = "gridfs"
     #   config.grid_fs_username = mongo['username']
     #   config.grid_fs_password =  mongo['password']
     # end
    
     # It's also possible to define indexes in the the model itself; however,
     # a few issues are being worked out still. This is a temporary solution.
     # Comment.ensure_index([["story_id", 1], ["path", 1], ["points", -1]])
     # MongoMapper.ensure_indexes!
    
     # Handle passenger forking.
     # if defined?(PhusionPassenger)
     #    PhusionPassenger.on_event(:starting_worker_process) do |forked|
     #      MongoMapper.database.connect_to_master if forked
     #    end
     # end
    
     if defined?(PhusionPassenger)
        PhusionPassenger.on_event(:starting_worker_process) do |forked|
          MongoMapper.connection.connect if forked
        end
     end
    
  5. Startсервер mongod перед запуском сервера rails и наслаждайтесь!

0 голосов
/ 03 июня 2011

Попробуйте удалить требуемые строки и заменить их на include MongoMapper

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...