Используйте Yaml для конфигурации MongoMapper

#yaml #mongomapper

#yaml #mongomapper

Вопрос:

У меня есть файл конфигурации Yaml, mongo.yml :

 development:
  adapter: mongodb
  database: fhsclock_development
  host: localhost
  port: nil

test:
  adapter: mongodb
  database: fhsclock_test
  host: localhost
  port: nil

production:
  adapter: mongodb
  database: fhsclock
  hosts:
  - - localhost
    - nil
  - - staff.mongohq.com
    - 10015
 

Как мне использовать этот файл для настройки и подключения к MongoMapper?

Ответ №1:

MongoMapper будет просто использовать файл, если вы используете Rails, и файл находится по адресу config/mongo.yml . Если вы не используете Rails, вы можете адаптировать этот код из исходного кода:

 config_file = Rails.root.join('config/mongo.yml')
if config_file.file?
  config = YAML.load(ERB.new(config_file.read).result)
  MongoMapper.setup(config, Rails.env, :logger => Rails.logger)
end
 

Кроме того, «адаптер» в вашем файле является посторонним. (См. Документацию по началу работы). A mongo.yml из rails g mongo_mapper:config выглядит так:

 defaults: amp;defaults
  host: 127.0.0.1
  port: 27017

development:
  <<: *defaults
  database: my_app_development

test:
  <<: *defaults
  database: my_app_test

# set these environment variables on your prod server
production:
  <<: *defaults
  database: my_app
  username: <%= ENV['MONGO_USERNAME'] %>
  password: <%= ENV['MONGO_PASSWORD'] %>