2011-04-22 2 views
5

Как именно использовать фильтр карт в Liquid? Я использую его в Джекиле.Liquid Template Map Filter

--- 
my_array: [apple, banana, orage] 
my_map: 
    hello: world 
    foo: bar 
my_string: "how does this work?" 
--- 
{{ page.my_map | map ... }} 

Вот о чем я заблудился. Кажется, я не могу найти какой-либо пример его использования в документах или где-либо еще в Интернете.

Кстати, я не знаю Ruby, но мне тоже не ясно, source code.

От filter tests он выглядит следующим должен производить что-то, но на GitHub, я не подвожу ничего:

{{ site.posts | map: 'title' | array_to_sentence_string }} 

я бы ожидать, что я должен получить что-то вроде:

My First Blog Post, Yet Another Post, and Third Posts 

ответ

8

I был способен сделать то, что вы хотите таким образом:

{{ site.posts | map: 'to_liquid' | map: 'title' | array_to_sentence_string }} 

Объяснение:

Я думаю, что site.posts возвращает массив из Post экземпляров вместо того, чтобы возвращать их версию to_liquid (что кажется очень странным - возможно, это ошибка, вы должны сообщить об этом). Экземпляры этого класса не respond_to? :title, а так как код Liquid проверяет это, map возвращает ноль для всех экземпляров.

Смежные вопросы