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
应该可以。
我从数据库中提取了一些记录,如下所示,并分配了一个名为 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
应该可以。