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

Rails - Loop not printing the data in liquid template

我从数据库中提取了一些记录,如下所示,并分配了一个名为 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的数据没有出现?

无论您将 users 传递给液体模板,您都需要将其更改为 users.map(&:attributes) 以获得正确的格式,我们不能只传递 users 对象。进行此更改后,以下循环将很好地呈现数据。

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

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

如果是这种情况,users.to_a 应该可以。