繁体   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