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).