2016-01-22 30 views
0

我试图做这样的事情:液体是否有“或空白?”型过滤器?

<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对象的结构来解决这个问题,但不幸的是我不能很轻松地做到这一点,所以我希望能在这里找到一个容易的地方。

回答

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

+0

是的,它看起来像基于Liquid目前的API,这是实现这一目标的唯一方法。谢谢! –

相关问题