使用rails

时间:2015-07-21 19:28:19

标签: ruby-on-rails

在我的应用中,我的表用户具有以下列:

t.integer  "administrations", array: true

我的代码看起来像这样:

User.where("administrations::int[] = ARRAY[#{administration_ids.join(',') }]::int[]")

但它很容易被sql注入。我试图将这些改写成类似的东西:

User.where("administrations::int[] = ?", "ARRAY[#{administration_ids.join(',') }]::int[]")

但这不起作用......

它返回:

PG::InvalidTextRepresentation: ERROR:  array value must start with "{" or dimension information

2 个答案:

答案 0 :(得分:1)

User.where("administrations::int[] = ARRAY[?]::int[]", administration_ids.join(','))

工作?

答案 1 :(得分:0)

也像这样的工作:

User.where(administrations: '{15,26,62,89,121}')