如何将变量传递给YAML数组?我想象它的工作方式就像把它传递给普通的字符串,就像这样(一般例子):
en:
names:
- First %{name}
- Second %{name}
- Third %{name}
t('names', name: 'foo')[0]
但是这将呈现文本First %{name}
。我知道我可以使用显式索引键,例如name_0:
,name_1:
等,但我认为YAML数组更清洁,并且想要使用它。
答案 0 :(得分:4)
如果你看一下I18n
gem interpolate function,你会看到你不能通过传递值来做到这一点,因为如果输出不是string
,插值将无效。
但没有什么能阻止你做以下事情:
t('names').map{|s| I18n.interpolate(s, name: 'foo')}