液体是否有“或如果是空白?”型过滤器?

时间:2016-01-22 15:58:58

标签: liquid

我正在尝试做这样的事情:

<a href="...&user_name={{customer.name}}&...">Click me.</a>

但有时候customer.name可能是空白的。不是null,而是Ruby的blank?版本(例如,空字符串"")。在这种情况下,我想使用customer.email

在完美的世界中,液体会有一个or_if_blank过滤器,可以执行以下操作:

<a href="...&user_name={{customer.name | or_if_blank: customer.email }}...">Click me.</a>

但事实并非如此。任何简单的方法来破解这个?我对液体很新,所以尽管我已经在these docs倾注了15分钟,但我的答案仍然可以直视我。

顺便说一句,我知道我可以通过改变我传入Liquid的customer对象的结构来解决这个问题,但遗憾的是我不能轻易做到这一点所以我希望找到一个在这里很容易。

2 个答案:

答案 0 :(得分:1)

您可以使用以下格式根据customer.name:

的值更改html
{% if customer.name %}
<a href="...&user_name={{customer.name}}&...">Click me.</a>
{% else%}
<a href="...&user_name={{customer.email}}&...">Click me.</a>
{% endif %}

您可以在此处详细了解if液体语句:https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#if--else

答案 1 :(得分:0)

您可以使用 default 过滤器:

<a href="...&user_name={{customer.name | default: customer.email }}...">Click me.</a>