【发布时间】:2011-09-16 08:00:47
【问题描述】:
我有一个具有相似键的 yaml 文件文档:-
sample_file.yml
line:
title: line-name
department: transcription
input_formats:
- input_format:
name: company
required: true
valid_type: general
- input_format:
name: website
required: false
valid_type: url
生成 new_file.yml 后,键按字母顺序排序:-
new_file.yml
line:
department: transcription
input_formats:
-
input_format:
name: company
required: true
valid_type: general
-
input_format:
name: website
required: false
valid_type: url
title: line-name
打开sample_file和制作new_file的代码如下:-
require 'yaml'
require 'ya2yaml'
@file = YAML::load(File.open("/Users/manish/Desktop/yaml/sample_file.yml"))
@new_file = File.new("/Users/manish/Desktop/yaml/new_file.yml", "w+")
@new_file.syswrite(@file.ya2yaml(:hash_order => ['title','department','input_formats']))
我正在使用“ya2yaml”gem 来生成 yaml 文件。为了获得与 sample_file.yml 中相同的顺序,我在这里使用了 hash_order @new_file.syswrite(@file.ya2yaml(:hash_order => ['title','department','input_formats'])),但它不起作用。如何保留订单?
【问题讨论】:
-
您的第一个 yaml 文件不仅有重复的键,而且在最后一个 'station' 节中的格式也无效 - 'worker' 应该与 'station_type' 对齐。
标签: ruby-on-rails ruby ruby-on-rails-3 rubygems yaml