kaw*_*nah 3 ruby liquid shopify
请考虑以下内容:
{% for variant in product.variants %}
{{ forloop.index }}<br>
{{ unless forloop.last }}LAST<br>{{ endunless }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
根据shopify文档:
如果这是 for 循环的最后一次迭代,则返回 true。如果不是最后一次迭代,则返回 false。
上面代码的输出是:(对于 3 个变体)
1
LAST
2
LAST
3
LAST
Run Code Online (Sandbox Code Playgroud)
为什么?变体对象与上下文中的其他对象不同吗forloop.last?
您已unless使用双大括号分隔符而不是大括号百分比分隔符来分隔查询。因此,它们不会围绕文字值形成条件范围,LAST因此总是添加该值(忽略条件)。
如果您对条件使用正确的大括号样式,它应该可以正常工作:
{% for variant in product.variants %}
{{ forloop.index }}<br>
{% unless forloop.last %}LAST<br>{% endunless %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅文档。