簡體   English   中英

Rails -PG :: InvalidTextRepresentation:錯誤:格式不正確的數組文字

[英]Rails -PG::InvalidTextRepresentation: ERROR: malformed array literal

add_column :ssr_service_markets, :origin, :string, array: true, default: []

當我想

SSRService::Market.where(origin: "*", destination: "*").first

我有

PG::InvalidTextRepresentation: ERROR: malformed array literal: "*" LINE 1: ...service_markets" WHERE "ssr_service_markets"."origin" = '*' DETAIL: Array value must start with "{" or dimension information

如何解決?

在Postgres中,要檢查數組是否包含給定元素,可以使用@>數組運算符。

閱讀更多: 數組運算符


:originssr_service_markets表中的一個數組字段,這意味着它可以包含多個值。

在您的示例中,假設destination也是數組字段,則可以嘗試通過以下方式進行搜索:

Model.where(["origin @> ? AND destination @> ?", '{*}', '{*}')"])

記住在處理數組值時要使用花括號

要將數組值寫為文字常量,請將元素值括在花括號內[...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM