我在我的rails应用程序中使用YAML文件进行配置,文件中的一些条目是未来条目的子集,例如 -
域名:domain.com
名称:杰克
电子邮件:jack@domain.com
为了提高效率,在YAML中可能会出现这种情况吗?
域名:domain.com
名称:杰克
电子邮件:jack @ $ {domain}
答案 0 :(得分:0)
YAML有anchors,但您不能像在问题中那样使用它们作为变量。您可以通过后处理步骤来完成。说你的domains.yaml
是
domains:
- domain: &domain domain.com
name: jack
emaillocal: jack
emaildomain: *domain
- domain: &domain thehill.com
name: Jill
emaillocal: jill
emaildomain: *domain
然后用
#! /usr/bin/ruby
require "yaml"
yaml = YAML.load_file('domains.yaml')
yaml['domains'].each { |d|
d['email'] = d['emaillocal'] + '@' + d['emaildomain']
}
puts YAML::dump(yaml)
你得到了
domains: - name: jack emaildomain: domain.com domain: domain.com emaillocal: jack email: jack@domain.com - name: Jill emaildomain: thehill.com domain: thehill.com emaillocal: jill email: jill@thehill.com
答案 1 :(得分:0)