排解 Liquid 錯誤

本指南可協助您排解 LookML 中的 Liquid 錯誤。

偵錯樹狀結構

請使用下列決策樹排解常見的 Liquid 問題:

以下各節將進一步說明樹狀結構中的情境。

錯誤:找不到變數

確認該欄位可在「探索」中存取

如果您參照 Explore 無法存取的欄位,可能會看到這則錯誤訊息。

首先,請檢查欄位名稱是否有錯字。接著,請確認定義該欄位的檢視區塊已加入探索。

錯誤:Liquid 剖析例外狀況

在 IDE 中驗證 LookML 或執行查詢時,可能會出現這項錯誤。以下各節將說明這項錯誤的常見原因。

關閉任何單引號或雙引號

檢查是否有開啟但未關閉的單引號或雙引號。舉例來說,下列程式碼會擲回錯誤:

{% if value == "Shirt %}
  This is a shirt.
{% endif %}

如要解決錯誤,請關閉引號。

{% if value == "Shirt" %}
  This is a shirt.
{% endif %}

使用雙等號 (==) 進行比較

檢查某個值是否等於另一個值時,請勿使用單一 =。下列程式碼會擲回錯誤:

{% if value = "Shirt" %}
  This is a shirt.
{% endif %}

如要解決錯誤,請改用兩個 ==。

{% 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 %}

Liquid 顯示的值不正確

在這些情況下,LookML 通常會驗證成功,但您在「探索」中執行查詢時,會看到非預期的結果。

將 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 %};;

請參閱 Liquid 變數參考資料,瞭解哪些 LookML 參數支援哪些 Liquid 參數。在這個範例中,您可以將程式碼改寫如下:

html: {{ parameter_name._parameter_value }};;