2012-05-31 36 views
9

如何在yaml中存储带有嵌入变量的ruby字符串,但仅在从yaml获取字符串时插入变量值?在YAML文件嵌入变量的Ruby字符串

+0

你是什么意思的字符串与内置变量?你确定只想插入变量*名称* –

+0

他想稍后进行插值。我猜。 –

+0

我把这个问题看成是想要做一些类似于“Yaml#{variable}”的文本。to_yaml变量在发送给yaml之前未被评估的地方。 – vlasits

回答

19
str = "Hi %{name}, %{msg}. Bye %{name}." #yaml it, de-yaml it back to string 
h = {:name=> "John", :msg=> "this message is for you"} 
puts str % h 
#=>Hi John, This message is for you. Bye John. 
+0

是的,这正是我想要的 – yatagarasu

+2

所以很酷的sprintf! – Hooopo

+0

哇!红宝石好! –

2

ERB嵌入铁轨那样:

# config/initializers/load_config.rb 
APP_CONFIG = YAML.load_file("#{Rails.root}/config/app_config.yml")[Rails.env] 


# config/app_config.yml 
development: 
    key1: <%= # ruby code ... %> 
test: 
    key1: <%= # ruby code ... %> 
production: 
    key1: <%= # ruby code ... %>