我们假设
class Sale< ApplicationRecord
serialize :items, Array
end
如何基于数组属性进行搜索。这些项目是整数或ID的列表。
现在,我想找出所有在其商品数组中具有特定ID的销售记录。
假设我要搜索ID 10
如何在哪里使用呢?我正在寻找类似于
的东西Sale.where(items: Array.new(10))
感谢您的帮助!
答案 0 :(得分:0)
您可以通过创建新的关系Sale has_many Items
来实现相同目的,然后可以使用find传递ID数组。
class Sale < ApplicationRecord
has_many :items
end
class Item < ApplicationRecord
belongs_to :items
end
sale = Sale.first()
sale.items.find([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) // returns an array with the matching items
答案 1 :(得分:0)
Sale.where("items = ANY(ARRAY[?]::int[])", [10])
请注意,int
应该替换为您的items
字段类型(我想它已经是int
了)