【问题标题】:Passing variables to a YAML array将变量传递给 YAML 数组
【发布时间】:2013-10-30 12:02:17
【问题描述】:

如何将变量传递给 YAML 数组?我想象它的工作方式就像将它传递给普通字符串,就像这样(一般示例):

en:
  names:
    - First %{name}
    - Second %{name}
    - Third %{name}

 

t('names', name: 'foo')[0]

但这将呈现文本First %{name}。我知道我可以改用显式索引键,例如 name_0:name_1: 等,但我认为 YAML 数组是一种更简洁的方式,并希望使用它。

【问题讨论】:

    标签: arrays rails-i18n string-interpolation


    【解决方案1】:

    如果您查看I18n gem interpolate function,您会发现不能通过传递值来做到这一点,因为如果输出不是string,则插值将不起作用。

    但没有什么能阻止您执行以下操作:

    t('names').map{|s| I18n.interpolate(s, name: 'foo')}
    

    【讨论】:

    • 嗯,我明白了...在这种情况下,我还不如t('names')[0].gsub('%{name}', 'foo'),因为那是basically what interpolate does,但在这两个例子中,t('names.name_0', name: 'foo') 更容易。
    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 2022-06-29
    • 1970-01-01
    • 2020-07-28
    • 2022-01-11
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多