带有嵌入变量的 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 字符串的主要内容,如果未能解决你的问题,请参考以下文章

Ruby Slim - 在 DOM 属性中嵌入 JSON

为啥关键字参数必须作为带有符号键的哈希传递,而不是 Ruby 中的字符串键?

Ruby正则表达式过滤掉带有“字符串”后缀的单词结尾

如何将javascript变量传递给嵌入式ruby?

为啥我不能解析保存到 Ruby 中变量的日期字符串?

将带有嵌入括号的字符串转换为字典