【发布时间】:2012-11-12 19:18:00
【问题描述】:
我有一个公司模型,它有很多行业和一个级别。
我有一个辅助函数,可以根据级别获取行业数量。
假设具有“基本”级别的公司模型实例只能搜索前 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
【问题讨论】:
-
你说公司、级别、行业,我们都知道你的要求。请添加相关细节,因为我们无法假设它们。请对您的问题和相关事物的架构提供更高级别的概述。
-
对不起,我不是很清楚,我想通了。
标签: ruby-on-rails ruby solr range limit