Den løsning, jeg bruger indtil videre (afgjort åben for andre tilgange!) er at tvinge Rails til at serialisere med noget andet end Yaml, for at tillade strengforespørgsler:
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
Det er lidt skævt, da jeg er nødt til at forespørge med den brugerdefinerede find_by_arr
, men det virker.
(Rediger:fjernet dårlig eksempelkode.)