Я пишу плагин для Джекила, так что я могу сравнить некоторые данные о продуктах, и я возвращал массив хэшей, как так быть доступны в шаблоне:траверс массива хэшей в Ruby (Джекил)
data = [{"current"=>"0.4mA", "power"=>"15w"}, {"current"=>"1A", "power"=>"5w"}]
Но теперь, когда я пройти их с помощью liquid
:
<table>
{% for h in data %}
<tr>
{% for p in h %}
<td>{{ p[0] }}</td>
<td>{{ p[1] }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
Я не могу перечислить свойства бок о бок, так как я прохожу через хэшей один за один раз, так что я в конечном итоге, их один ниже другого.
Что делать с плагином, чтобы подготовить данные по-другому, чтобы я мог сделать то, что хочу, в моем шаблоне?
EDIT:
Итак, чтобы очистить немного, как получить следующие структуры из приведенного выше массива хэшей, используя чистый рубин ?:
p1['current'] = '0.4mA'
p1['power'] = '15w'
... *may have more of these, depending on number of key:value pairs in the hash
p1['...'] = '...'
p2['current'] = '1A'
p2['power'] = '5w'
... *may have more of these, depending on number of key:value pairs in the hash
p2['...'] = '...'
Но у меня будут произвольные имена для ключей и их количество, и как их сопоставить? – branquito
Я решил использовать 'data [0] .keys.to_a' вместо жестко заданных значений, поскольку они всегда будут одинаковыми в обоих хэшах, потому что это пересечение других двух хешей продукта на их общих ключах. – branquito
Я только что обновил свой ответ с помощью альтернативного решения, если у вашего будущего набора данных отсутствовали ключи для некоторых значений. –