Die Lösung, die ich jetzt verwende (definitiv offen für andere Ansätze!), besteht darin, Rails zu zwingen, mit etwas anderem als Yaml zu serialisieren, um Zeichenfolgenabfragen zu ermöglichen:
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 ist ein bisschen ruckelig, dass ich mit dem benutzerdefinierten find_by_arr
abfragen muss , aber es funktioniert.
(Bearbeiten:schlechten Beispielcode entfernt.)