2016-01-22 51 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,這是實現這一目標的唯一方法。謝謝! –

相關問題