为什么yaml.dump会为这个键值对添加引号

时间:2010-03-21 20:12:19

标签: ruby-on-rails yaml

我正在尝试为rails database.yml写​​一个新条目,由于某种原因,我得到了关于此条目的引用

db_yml => {'new_env'=> {'database'=> 'database_name','<<' => '*默认'}} File.open(“#{RAILS_ROOT} /config/database.yml”,“a”){| f | YAML.dump(db_yml,f)}

返回

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

我不知道为什么返回“---”和默认值周围的引号,有关如何预防的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

&LT;&LT;和*在YAML中有特殊含义。 引号用于表示&lt;&lt;不是merge而*不是alias

答案 1 :(得分:1)

---只是为了标记YAML转储的开始。

围绕<<的双引号因为可以用YAML格式来解释。所以它逃脱了。