我有一个公司模型,它有很多行业和一个级别。
我有一个辅助函数,可以根据级别获取行业数量。
假设具有“基本”级别的公司模型实例只能搜索前 2 个行业,虽然它可能包含更多,但我只希望它显示在前 2 个行业的结果中。
在我的模型中
searchable do
integer :industry_ids, multiple: true
如何限制对模型实例的搜索,以便根据 num_of_industries 辅助函数确定的级别只能搜索特定数量的行业。
就像是
searchable do
integer :industry_ids[num_of_industries], multiple: true
编辑:我想通了
LIMITED_INDUSTRIES_BASED_ON_LEVEL = {
'Free' => 1,
'Silver' => 3,
'Gold' => 5,
'Platinum' => 5
}
def industries_limited
self.industries.limit(LIMITED_INDUSTRIES_BASED_ON_LEVEL[self.level])
end
searchable do
integer :industry_ids, multiple: true do
self.industries_limited.map(&:id)
end
end