このガイドでは、LookML の Liquid エラーのトラブルシューティングについて説明します。
デバッグツリー
次の決定木を使用して、一般的な Liquid の問題をトラブルシューティングします。
以降のセクションでは、ツリー内のシナリオについて詳しく説明します。
エラー: 変数が見つかりません
Explore でフィールドにアクセスできることを確認する
このエラーは、Explore でアクセスできないフィールドを参照している場合に表示されることがあります。
まず、フィールド名に誤字脱字がないか確認します。次に、フィールドが定義されているビューが Explore に結合されていることを確認します。
エラー: Liquid の解析例外
このエラーは、IDE で LookML を検証しているとき、またはクエリを実行しているときに表示されることがあります。以降のセクションでは、このエラーの一般的な原因について説明します。
単一引用符または二重引用符を閉じます
開き引用符はあるが閉じ引用符がない単一引用符または二重引用符がないか確認します。たとえば、次のコードはエラーをスローします。
{% if value == "Shirt %}
This is a shirt.
{% endif %}
エラーを解決するには、引用符を閉じます。
{% if value == "Shirt" %}
This is a shirt.
{% endif %}
比較には double == を使用する
値が別の値と等しいかどうかを確認する場合は、単一の = を使用しないでください。次のコードはエラーをスローします。
{% if value = "Shirt" %}
This is a shirt.
{% endif %}
エラーを解決するには、代わりに == を 2 つ使用します。
{% if value == "Shirt" %}
This is a shirt.
{% endif %}
正しいタグ構文を使用する
if
ステートメントを囲む出力構文や、単一の値を囲むタグ構文は使用しないでください。次のコードはエラーをスローします。
{{ if value == "Shirt" }}
This is a {% value %}.
{{ endif }}
代わりに、個々の値を挿入する構文を出力し、タグ構文を使用して論理比較と演算を行います。
{% if value == "Shirt" %}
This is a {{ value }}.
{% endif %}
Liquid タグをネストしない
他の Liquid タグの中に Liquid タグを使用しないでください。たとえば、次のコードはエラーをスローします。
{% if value > {{ view_name.field_name._value }} %}
This value is larger.
{% endif %}
エラーを解決するには、ネストされたタグを削除します。
{% if value > view_name.field_name._value %}
This value is larger.
{% endif %}
液体が正しくない値を表示している
このような場合、通常は LookML の検証でエラーは発生しませんが、Explore でクエリを実行すると予期しない結果が表示されます。
yesno 値を大文字にする
Liquid を使用して yesno
フィールドの値を確認する場合は、大文字になっていない値を確認します。次のコードは、yes
条件の結果と一致しません。
{% if value == "yes" %}
This is a shirt or shoes.
{% endif %};;
代わりに、「Yes」と「No」の値を大文字にします。
{% if value == "Yes" %}
This is a shirt or shoes.
{% endif %};;
Liquid パラメータがサポートされているかどうかを確認する
その Liquid パラメータをサポートしていない LookML パラメータで Liquid パラメータを参照すると、Looker は Liquid パラメータを無視します。
たとえば、次のコードは何も返しません。これは、html
LookML パラメータで parameter parameter_name
構文がサポートされていないためです。
html: {% parameter parameter_name %};;
どの LookML パラメータでどの Liquid パラメータがサポートされているかについては、Liquid 変数のリファレンスをご覧ください。この例では、コードを次のように書き換えることができます。
html: {{ parameter_name._parameter_value }};;