在这个database.yml文件中,&,<<,*是什么意思?
到目前为止,我只使用了database.yml,每个参数明确地调出来,在下面的文件中它使用了一些我不明白的字符。 每一行和符号(&,*,<<)是什么意思,我怎么读这个文件?
development: &default adapter: postgresql database: dev_development test: &test <<: *default database: test_test cucumber: <<: *test production: <<: *default database: test_production
&
标记节点的别名(在您的示例中, &default
将开发节点别名为“default”), *
引用具有名称“default”的别名节点。 <<:
插入该节点的内容。
请允许我在这里引用YAML规范:
重复的节点(对象)首先由一个锚(用&符号 – “&”标记)标识,然后用别名(用星号“*”表示)。
所以你的例子的一部分
test: &test <<: *default
实际上扩大到
test: &test adapter: postgresql # from the "default" alias database: dev_development # from the "default" alias
同时使“testing”节点也可以在别名“testing”下使用。 看看YAML规范 – 2.2结构的进一步细节(或者,如果你甚至需要莫纳尔文档++: 3.2.2.2。锚和别名 )
&default
意味着你使用某个名字来标记这组属性,以备以后使用
<<: *default
意味着您将包含标记为默认组的所有属性
这些表示节点引用(*)和关联数组合并(<<),引用标有锚(&)标签的节点 – 维基百科
在网上尝试一下。
它们是参考环境的一种方式,无需反复重复相同的设置(干起来)。
test: &test <<: *default
&test
会创build对这些特定设置的引用。
<<: *default
表示使用testing的默认设置
cucumber: <<: *test
所以现在我们知道,对于cucumber
我们想使用test
的设置。