是否可以将值传递给YAML列表?

时间:2016-06-09 22:54:27

标签: ruby list yaml haml enumerable

我正在寻找一种方法将值传递给可列举的列表,因此我可以为< ul>生成一组列表项。该值应由允许它的项目显示。

      
  •   
  • 收藏夹(15)< - 15是我想要显示的值。
  •   
  • 存档
  •   
  • 删除

以下内容不起作用,但应该有助于说明实现目标。

HAML

%ul
  =list_of t('.menu', favorites_count: 15) do |item|
    #{item}

YAML

menu:
  - new
  - favorites ('%{favorites_count}')
  - archived
  - deleted

注意:最初我的YAML包括< li>字典形式的标签,字符串内部,其中一个包括计数值。但我觉得混合HTML和YAML有点笨拙,如下所示:

menu:
  first_item: <li>new</li>
  second_item: <li>favorites %{favorites_count}</li>
  third_item: <li>archived</li>
  fourth_item: <li>deleted</li>

因此寻找一个更清洁的选项,它只会在HAML端呈现标签而不会在YAML中丢弃它们。

1 个答案:

答案 0 :(得分:1)

I18n.t使用与sprintf非常类似的插值语法,您可以利用这些语法:

%ul
  = list_of t(".item") do |item|
    = sprintf(item, favorites_count: 15)

我不完全确定这是正确的Haml语法,但你明白了。