Gri*_*fin 9 liquid shopify shopify-template
我正在尝试使用块设置来过滤块数组。我可以使用以下语法按“类型”等属性进行过滤:
\n\n{% assign example = section.blocks | where: "type", "photos" %}
我需要做的是按块设置进行过滤,如下所示:
\n\n{% assign example = section.blocks | where: settings.collection, collection.handle %}
上面的例子默默地失败了。
\n\n注意:目前我正在使用带有 for 循环和 if 语句的捕获来完成我需要的操作,然后使用 split \xe2\x80\x94 进行分配,但代码非常臃肿,并且执行所有这些操作都是为了一个简单的过滤操作看起来很荒谬。我发现自己总是感觉自己在与液体战斗,我想我希望它可能比我想象的更优雅一点。
\n小智 7
我对 Ruby 了解不多,但似乎无法将带有点表示法的嵌套属性传递给where过滤器。然而,在看到人们使用 访问嵌套值后map,我测试了将两者混合,并且映射过滤器似乎适合这种情况。
我在块中调用了一个布尔设置default,并且我获得了最后一个块的设置对象,并default设置为true使用以下内容:
{% assign obj = section.blocks | map: 'settings' | where: 'default' | last %}
Run Code Online (Sandbox Code Playgroud)
当然,这样您就无法获取提取的设置对象之外的数据。为此,我认为您确实需要section.blocks使用标签手动循环并查找过滤器if。
| 归档时间: |
|
| 查看次数: |
8474 次 |
| 最近记录: |