是否可以使用YAML在锚点数组的中间插入新键?

时间:2015-09-30 01:47:38

标签: ruby-on-rails yaml

我有像这样的锚数组的YAML文件。

sammy: &as
  - a
  - c

现在我想添加新密钥,但是按照以下方式:

mobile:
  <<: *as # Want to add new element in between a & c
  # i.e.
  # The new mobile should be
  # a b c

有可能吗?
注意:我使用ysets在app中检索这些键。

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。原因是您的别名as引用的锚定元素必须是根据specification for merge keys的映射。

你的元素(即sammy的值)是一个序列,而不是映射,所以这不起作用。

这也是检查的原因:

sammy: &as
  - a
  - c
mobile:
  <<: *as

online会给您一个错误。

解决这个问题的唯一方法就是做一些事情:

sammy: &as
  1: a
  3: c
mobile:
  <<: *as
  2: b

然后使用按其键排序的mobile值。