Ошибка синтаксиса: тег не был правильно завершен с помощью регулярного выражения: / \% \} / - PullRequest
0 голосов
/ 30 октября 2019

У меня есть условие if в моем жидком шаблоне, подобное этому

Username: {{user.email}}
{% if extras['password_to_be_sent'] %}
Password: {{extras['password_to_be_sent']}}
{% endif %}
Trial expiration: {{user.trial_expiration}}

Однако это вызывает разрыв строки, если условие if не оценивается как true

поэтому выше сгенерированный вывод, подобный этому

Username: Abc

Trail Expiration: 2019-11-10

Я хочу удалить дополнительный разрыв строки, когда условие if не оценивается как true

Я попытался добавить - какздесь предлагается https://shopify.github.io/liquid/basics/whitespace/

, поэтому обновил код до

Username: {{user.email}}
{%- if extras['password_to_be_sent'] -%}
Password: {{extras['password_to_be_sent']}}
{%- endif -%}
Trial expiration: {{user.trial_expiration}}

, но это дает исключение Liquid::SyntaxError (Liquid syntax error: Tag '{%- if extras['password_to_be_sent'] -%}' was not properly terminated with regexp: /\%\}/)

Кроме того, я сохраняю код шаблона в базе данных,если это поможет.

Любая помощь в этом будет оценена. Спасибо.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Ответ выше в комментарии, но здесь снова:

Я вижу, вы также пометили Ruby on Rails - если ваше приложение Rails использует версию Liquid ранее 4.0.0вы не сможете использовать теги управления пробельными символами. Они были добавлены в Liquid 4.0.0.

0 голосов
/ 30 октября 2019

Вы проверили, чтобы убедиться, что extras['password_to_be_sent'] не возвращает правдивую, но пустую строку? Может быть, это должно быть:

Username: {{user.email}}
{%- if extras['password_to_be_sent'].present? -%}
Password: {{extras['password_to_be_sent']}}
{%- endif -%}
Trial expiration: {{user.trial_expiration}}
...