我有一个模型让我们说Model
serialized
中有一个Postgresql
字段。还有一个表格为Role
,其中有::uuid
。
我想获取一个附加字段(别名如&new;'作为new_field'),其中包含特定操作的结果。当我用单个值手动运行它然后它工作正常,但当我将其转换为动态,然后通过语法错误。
以下是我的query
单值:
Model.select("models.role_ids @> '{\"fe8fea09-869c-4a40-ab80-87623be70399\"}'::uuid[] as new_field").first.new_field
# SELECT models.role_ids @> '{"fe8fea09-869c-4a40-ab80-87623be70399"}'::uuid[] as tes FROM "models" ORDER BY "models"."id" ASC LIMIT 1
=> false
它正确运行查询。
然后我用我的阵列尝试了它:
1)在查询中放置数组的值时:
Model.select('models.role_ids @> ARRAY[?]::uuid[] as new_field', user.role_ids)
此处user
是具有HABTM关联和' role_ids'的用户对象。是中介表ids。如果我忘记了要提及的内容,请告诉我
Query log:
Model Load (2.2ms) SELECT models.role_ids @> ARRAY[?]::uuid[] as new_field, fe8fea09-869c-4a40-ab80-87623be70399 FROM "models"
PG::SyntaxError: ERROR: syntax error at or near "]"
LINE 1: SELECT models.role_ids @> ARRAY[?]::uuid[] as new...
^
: SELECT models.role_ids @> ARRAY[?]::uuid[] as new_field, fe8fea09-869c-4a40-ab80-87623be70399 FROM "models"
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: syntax error at or near "]"
LINE 1: SELECT models.role_ids @> ARRAY[?]::uuid[] as new...
如果有任何选择,请告诉我。