2013-10-30 78 views
3

如何將變量傳遞給YAML數組?我把它想象中的工作方式就像它傳遞給普通字符串,像這樣的(一般的例子):將變量傳遞給YAML數組

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

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

但是,這將使文本First %{name}。我知道我可以使用明確的索引鍵,如name_0:,name_1:等,但我認爲YAML數組是一種更清潔的方式,並希望使用它。

回答

4

如果你看一下I18n寶石interpolate function,你會看到,你不能傳遞值做到這一點,因爲如果產量不string插值將沒有工作。

但沒有什麼能夠阻止你做到以下幾點:

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

嗯,我明白了......在這種情況下,我還不如'噸(「名稱」)[0] .gsub(「%{名}','foo')'因爲[基本上是什麼插值](https://github.com/svenfuchs/i18n/blob/3e5395036dd138a6dbf1148ecd4f14a56786f9fd/lib/i18n/interpolate/ruby.rb#L21),但在這兩個例子中,'t('names.name_0',name:'foo')'更容易。 – zykadelic