Я настраиваю Rails с MongoDB и нахожу странную проблему при обработке файла config/mongo.yml
.
config/mongo.yml
генерируется выполнением script/rails generate mongo_mapper:config
и выглядит следующим образом:
defaults: &defaults
host: 127.0.0.1
port: 27017
development:
<<: *defaults
database: tc_web_development
test:
<<: *defaults
database: tc_web_test
Из файла конфигурации мы видим, что объекты development
и test
должны иметь оба поля database
. Но когда он анализируется и загружается в config/initializers/mongo.db
,
config = YAML::load(File.read(Rails.root.join('config/mongo.yml')))
puts config.inspect
MongoMapper.setup(config, Rails.env)
приходит странная вещь: вывод puts config.inspect
равен
{"defaults"=>{"host"=>"127.0.0.1", "port"=>27017}, "development"=>{"host"=>"127.0.0.1", "port"=>27017}, "test"=>{"host"=>"127.0.0.1", "port"=>27017}}
, который не содержит атрибута database
. Но когда я выполняю те же операторы в простой консоли ruby, вместо использования rails console
, mongo.yml
анализируется правильным образом.
{"defaults"=>{"host"=>"127.0.0.1", "port"=>27017}, "development"=>{"host"=>"127.0.0.1", "port"=>27017, "database"=>"tc_web_development"}, "test"=>{"host"=>"127.0.0.1", "port"=>27017, "database"=>"tc_web_test"}}
Мне интересно, что может быть причиной этой проблемы. Есть идеи? Спасибо.