【发布时间】:2021-03-18 21:35:48
【问题描述】:
所以我在 postgres 上有以下 rails 查询,当我运行 rails 4 时运行良好
@products = @products.offset(offset).limit(@limit).where(status: "visible").where("add_to_inventory =? OR (add_to_inventory =? AND inventory !=? )", false, true, "{}").where.not("ARRAY(select distinct (jsonb_each(inventory)).value->>'quantity' as integer)='{0}'")
现在我最近更新到最新的稳定 Rails 5,现在每次评估时都会收到以下错误:
PG::InvalidParameterValue: ERROR: cannot call jsonb_each on a non-object : SELECT DISTINCT "products"."priority" AS alias_0, "products"."id" AS alias_1, "products"."id" FROM "products" INNER JOIN "categories" ON "categories"."deleted" = $1 AND "categories"."id" = "products"."category_id" LEFT OUTER JOIN "product_translations" ON "product_translations"."product_id" = "products"."id" WHERE "products"."deleted" = $2 AND (categories.company_id =1) AND "products"."status" IN ($3, $4) AND "products"."category_id" IN ($5, $6, $7, $8, $9, $10, $11, $12) AND "products"."status" = $13 AND (add_to_inventory =FALSE OR (add_to_inventory =TRUE AND inventory !='{}' )) AND NOT (ARRAY(select distinct (jsonb_each(inventory)).value->>'quantity' as integer)='{0}') ORDER BY "products"."priority" ASC, "products"."id" ASC LIMIT $14 OFFSET $15
导致此问题的可能更改是什么以及如何解决?谢谢
【问题讨论】:
标签: ruby-on-rails ruby postgresql ruby-on-rails-5