将Yaml用于MongoMapper配置

Eth*_*aub 5 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
Run Code Online (Sandbox Code Playgroud)

如何使用此文件进行MongoMapper的配置和连接?

Bri*_*pel 9

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
Run Code Online (Sandbox Code Playgroud)

此外,文件中的"适配器"是无关紧要的.(请参阅" 入门"文档).一mongo.ymlrails g mongo_mapper:config的样子:

defaults: &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'] %>
Run Code Online (Sandbox Code Playgroud)