带有嵌入变量的 Ruby 字符串
Posted
技术标签:
【中文标题】带有嵌入变量的 Ruby 字符串【英文标题】:Ruby strings with embedded variables 【发布时间】:2012-06-05 19:15:54 【问题描述】:如何在 yaml 中存储带有嵌入变量的 ruby 字符串,但只有在我从 yaml 获取字符串时才插入变量值?
【问题讨论】:
内嵌变量的字符串是什么意思?您确定要仅插入变量 names ... 他想稍后做插值。我猜。 我读到这个问题是想做一些类似“Yaml 的文本#variable”.to_yaml 的事情,其中变量在发送到 yaml 之前不会被评估。 另见: ***.com/questions/41620674/use-placeholders-in-yaml 【参考方案1】:像 rails 那样在 yaml 文件中嵌入 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 ... %>
【讨论】:
【参考方案2】: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.
【讨论】:
以上是关于带有嵌入变量的 Ruby 字符串的主要内容,如果未能解决你的问题,请参考以下文章