sql >> Base de Datos >  >> RDS >> PostgreSQL

Los rieles buscan por matriz serializada

La solución que estoy usando por ahora (¡definitivamente abierta a otros enfoques!) es obligar a Rails a serializar con algo que no sea Yaml, para permitir consultas de cadenas:

class Foo < ActiveRecord::Base
  serialize :arr, SerializedArray

  def self.find_by_arr
    self.where(arr: SerializedArray.dump(arr)).take
  end
end

class SerializedArray
  def self.load(arr)
    arr ? JSON.load(arr) : nil
  end

  def self.dump(arr)
    arr ? JSON.dump(arr) : nil
  end
end

Es un poco complicado porque tengo que consultar con el find_by_arr personalizado , pero funciona.

(Editar:se eliminó el código de ejemplo incorrecto).