使用Rails的数组函数动态选择查询pg

时间:2017-03-22 05:27:49

标签: postgresql ruby-on-rails-4

我有一个模型让我们说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...

如果有任何选择,请告诉我。

0 个答案:

没有答案