2010-03-21 6 views
0

Je suis en train d'écrire une nouvelle entrée à un database.yml de rails et pour une raison quelconque, je reçois des guillemets autour de cette entréePourquoi est-ce yaml.dump ajouter des guillemets cette valeur-clé paire

db_yml => { 'new_env' => {'database' => 'database_name', '< <' => '* par défaut'}} File.open ("# {RAILS_ROOT} /config/database.yml", "a") { | f | YAML.dump (db_yml, f)}

retours

--- 
new_env: 
    database: database_name 
    "<<": "*defaults" 

Je ne sais pas pourquoi le « --- » et les guillemets autour des valeurs par défaut sont retournés, les pensées sur la façon de prévenir?

merci!

Répondre

1

le --- est juste pour marquer le début du vidage de YAML.

La double citation autour de << c'est parce que peut être interprété en format YAML. Donc c'est l'évasion.

+0

Alors, que faire si je voulais écrire dans le fichier, mais ne pas avoir des citations là-bas et ne pas avoir les lignes qui marquent le début de la décharge? Y-a-t-il un moyen de faire ça? –

+0

Vous ne pouvez pas si vous voulez utiliser un caractère rentré – shingara

2

< < et * ont une signification spéciale en YAML. Les guillemets sont utilisés pour montrer que < < n'est pas merge et * n'est pas un alias.