Ruby 如何与Vagrant一起使用YAML文件?
我正在为我的流浪者项目改进我的YAML文件。根据,如果我有这样的东西:Ruby 如何与Vagrant一起使用YAML文件?,ruby,vagrant,yaml,vagrantfile,Ruby,Vagrant,Yaml,Vagrantfile,我正在为我的流浪者项目改进我的YAML文件。根据,如果我有这样的东西: en: site_name: "Site Name" static_pages: company: description: ! '%{site_name} is an online system' 我应该能够打印“站点名称是一个在线系统”,但我不知道如何在我的文件中使用它。 到目前为止,我已经尝试过了,但无法正确打印出来,仅此而已: %{site_name} is an online syst
en:
site_name: "Site Name"
static_pages:
company:
description: ! '%{site_name} is an online system'
我应该能够打印“站点名称是一个在线系统”
,但我不知道如何在我的文件中使用它。
到目前为止,我已经尝试过了,但无法正确打印出来,仅此而已:
%{site_name} is an online system
我就是这样使用它的:
require 'yaml'
set = YAML.load_file(ENV['DEVOPS_HOME'] + '/vagrant/server/settings.yml')
puts set['en']['static_pages']['company']['description']
您可能希望使用来实现此功能:
en:
site_name: &site_name "Site Name" # declaring alias
static_pages:
company:
description:
- *site_name # reference
- "is an online system"
后来:
puts set['en']['static_pages']['company']['description'].join(' ')
您可能希望使用来实现此功能:
en:
site_name: &site_name "Site Name" # declaring alias
static_pages:
company:
description:
- *site_name # reference
- "is an online system"
后来:
puts set['en']['static_pages']['company']['description'].join(' ')
正如他们在帖子的回答中所说的
然后以站点名称作为参数调用相应的视图
因此,在加载yaml文件后,您不会直接获得预期的字符串,您需要匹配参数。你可以在你的流浪汉档案中处理这个问题的一种方法是
require 'yaml'
set = YAML.load_file(ENV['DEVOPS_HOME'] + '/vagrant/server/settings.yml')
str = set['en']['static_pages']['company']['description']
arg = {:site_name=> set['en']['site_name']}
p str % arg
将打印出“站点名称是一个在线系统”
另一种方法是使用mudasobwa的答案,该答案也在您引用的原始帖子中详细说明,正如他们在帖子的答案中所说的那样 然后以站点名称作为参数调用相应的视图 因此,在加载yaml文件后,您不会直接获得预期的字符串,您需要匹配参数。你可以在你的流浪汉档案中处理这个问题的一种方法是
require 'yaml'
set = YAML.load_file(ENV['DEVOPS_HOME'] + '/vagrant/server/settings.yml')
str = set['en']['static_pages']['company']['description']
arg = {:site_name=> set['en']['site_name']}
p str % arg
将打印出“站点名称是一个在线系统”
另一种方法是使用mudasobwa的答案,该答案在您引用的原始帖子中也有详细说明您再次帮助了我@Frédéric!谢谢你,伙计!:)欢迎Valter -根据您的用例,另一个更简单,但是如果在字符串中间有变量,则连接将不起作用,并且需要参数的解析,例如,如果您在“%{SITEYNAME}”上有字符串“欢迎”,我们就在线了!简单的连接不会使参数位于特定位置,而且如果您有多个变量,则使用参数可能比使用连接更好您再次帮助了我@Frédéric!谢谢你,伙计!:)欢迎Valter -根据您的用例,另一个更简单,但是如果在字符串中间有变量,则连接将不起作用,并且需要参数的解析,例如,如果您在“%{SITEYNAME}”上有字符串“欢迎”,我们就在线了!简单的联接不会使参数位于特定位置,而且如果您有多个变量,使用参数可能比使用联接更好。我已经读过关于别名的内容,但我没有得到它。但以你为例,我能理解。谢谢@mudasobwa!我读过关于别名的文章,但我没有读到。但以你为例,我能理解。谢谢@mudasobwa!