MongoDBでRailsを設定していて、config/mongo.yml
ファイルをパージするときに奇妙な問題が見つかりました。 YAML設定ファイルをRailsにロードするときにエラーが発生する
config/mongo.yml
script/rails generate mongo_mapper:config
を実行して生成し、それは次のようになりますされます。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
フィールドを持つべきであるオブジェクトを見ることができます。 puts config.inspect
の出力はdatabase
属性が含まれていません
{"defaults"=>{"host"=>"127.0.0.1", "port"=>27017}, "development"=>{"host"=>"127.0.0.1", "port"=>27017}, "test"=>{"host"=>"127.0.0.1", "port"=>27017}}
次のとおりです。しかし、それは
config = YAML::load(File.read(Rails.root.join('config/mongo.yml')))
puts config.inspect
MongoMapper.setup(config, Rails.env)
奇妙なことが来て、解析され、config/initializers/mongo.db
にロードされたとき。しかし、普通のルビーコンソールで同じ文を実行すると、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"}}
この問題の原因は何ですか?何か案は?ありがとう。