如何从find_by方法的结果中找到特定范围的值

时间:2014-05-20 21:25:40

标签: ruby-on-rails ruby ruby-on-rails-4 elasticsearch

我在表中有一个属性等级,其值范围为1-100。我想通过提供一系列排名值的选项来执行方面搜索,例如1-5,6-10等。

我目前在我的视图文件中有以下代码

<%= link_to_unless_current Univ.find(facet['term']).rank, params.merge(id: facet['term']) %>    

分别显示值。

有没有办法可以对属性进行范围搜索?

请帮忙

2 个答案:

答案 0 :(得分:0)

您可以在where值中使用范围:

Model.where(value: 1..5)

例如,如果您需要值在1-20或45-70范围内,则可以将它们包装在数组中:

Model.where(value: [1..20, 45..70])

答案 1 :(得分:0)

尝试使用Searchkik

检查以下实现方面的问题

Setting up Facets in Elasticsearch with Searchkick gem in Rails 4.1

希望能给你一个使用轮胎实现的想法