Rails - 循环不在液体模板中打印数据

时间:2017-07-25 06:44:22

标签: ruby-on-rails liquid

我从数据库中提取了一些看起来如下的记录,并分配了一个名为users的变量

[#
<User id: 53433, first_name: "Héctor", last_name: "Pinzon">,
<User id: 53434, first_name: "Héctor 2", last_name: "Pinzon 2">,
]

在液体中我想通过循环

迭代它们
{% for user in users %}
{{ user.first_name }}
{% endfor %}

当我收到first_name应该出现的电子邮件时,它会打印出来

 Liquid error: internal 
 Liquid error: internal

我在这里做错了什么?为什么users的数据没有出现?

2 个答案:

答案 0 :(得分:2)

如果您将users传递给流动模板,则需要将其更改为users.map(&:attributes)以使其格式正确,我们无法通过users对象。进行此更改后,以下循环将使数据正常。

{% for user in users %}
{{user.first_name }} {{user.last_name }}
{% endfor %}

答案 1 :(得分:0)

您可以将一组对象传递给Liquid,但不能传递另一种类型的集合,例如ActiveRecord::Relation

如果是这种情况,users.to_a应该有效。