Lösningen jag använder för tillfället (definitivt öppen för andra tillvägagångssätt!) är att tvinga Rails att serialisera med något annat än Yaml, för att tillåta strängfrågor:
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 är lite krångligt eftersom jag måste fråga med den anpassade find_by_arr
, men det fungerar.
(Redigering:tog bort dålig exempelkod.)