Giải pháp tôi đang sử dụng bây giờ (chắc chắn là mở cho các cách tiếp cận khác!) Là buộc Rails phải tuần tự hóa với thứ gì đó khác ngoài Yaml, để cho phép các truy vấn chuỗi:
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
Có một chút rắc rối ở chỗ tôi phải truy vấn với find_by_arr
tùy chỉnh , nhưng nó hoạt động.
(Chỉnh sửa:đã xóa mã ví dụ xấu.)