De oplossing die ik nu gebruik (staat zeker open voor andere benaderingen!) is om Rails te dwingen om te serialiseren met iets anders dan Yaml, om stringquery's mogelijk te maken:
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
Het is een beetje janky omdat ik moet zoeken met de aangepaste find_by_arr
, maar het werkt.
(Bewerken:slechte voorbeeldcode verwijderd.)