首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails和solr如何限制或设置可搜索属性ids的范围

rails和solr如何限制或设置可搜索属性ids的范围
EN

Stack Overflow用户
提问于 2012-11-13 03:18:01
回答 1查看 167关注 0票数 0

我有一个公司的模式,有许多行业和水平。

我有一个帮助器函数,可以根据级别获取行业的数量。

比方说“基本”级别的公司模型实例应该只对前两个行业可搜索,虽然它可能包含更多,但我希望它只显示在前两个行业的结果中。

在我的模型中

代码语言:javascript
复制
searchable do
  integer :industry_ids, multiple: true

如何限制模型实例的搜索,以便只能根据num_of_industries助手函数确定的级别搜索特定数量的行业。

就像这样

代码语言:javascript
复制
searchable do
  integer :industry_ids[num_of_industries], multiple: true

编辑:我想通了

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 02:34:00

弄清楚公司的级别是“免费”,因此被限制在一个行业,但它可以添加更多,所以在未来如果它决定升级,所有的信息都在那里。因此,我将搜索本身限制为基本上只计算基于级别的行业(在本例中仅计算前1个行业,因为对于level = "Free",限制为1)

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13350032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档