私が今使用している解決策(他のアプローチに間違いなくオープンです!)は、文字列クエリを可能にするために、RailsをYaml以外のものでシリアル化することを強制することです:
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
カスタムのfind_by_arr
でクエリを実行する必要があるという点で、少し厄介です。 、しかしそれは機能します。
(編集:悪いサンプルコードを削除しました。)