本指南可協助您排解 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 }};;