我有一个公司的模式,有许多行业和水平。
我有一个帮助器函数,可以根据级别获取行业的数量。
比方说“基本”级别的公司模型实例应该只对前两个行业可搜索,虽然它可能包含更多,但我希望它只显示在前两个行业的结果中。
在我的模型中
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发布于 2012-11-16 02:34:00
弄清楚公司的级别是“免费”,因此被限制在一个行业,但它可以添加更多,所以在未来如果它决定升级,所有的信息都在那里。因此,我将搜索本身限制为基本上只计算基于级别的行业(在本例中仅计算前1个行业,因为对于level = "Free",限制为1)
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
endhttps://stackoverflow.com/questions/13350032
复制相似问题