Coincidencia de valores de matriz en PostgreSQL con ActiveRecord
En mi aplicación Rails 4 tengo el objetivo de ver todos los contactos, donde campovisible_to
en la tabla de contactos igual a 1. Mivisible_to
es:integer, array: true
.
Sin embargo, obtengo la siguiente excepción:
PG::UndefinedFunction: ERROR: operator does not exist: integer[] = integer LINE 1: ....* FROM "contacts" WHERE "contacts"."visible_to" IN (1) OR... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.: SELECT "contacts".* FROM "contacts" WHERE "contacts"."visible_to" IN (1) ORDER BY created_at DESC
Busqué respuestas y, por lo que veo, hay un problema con un tipo devisible_to
. Sin embargo, no pude encontrar la solución. También traté de obtener beneficios de la pista de lanzamiento, pero en vano.
Mi migración:
class AddVisibleToToContacts < ActiveRecord::Migration
def change
add_column :contacts, :visible_to, :integer, array: true, default: [], using: 'gin'
end
end
Variable relevante del controlador:
@contacts_all_user_sorted = Contact.all.where(visible_to: [1]).order("created_at DESC")