Rails搜索 - 多个特定模型属性选择器

时间:2014-01-12 00:49:23

标签: ruby-on-rails ruby-on-rails-3 search

我有一个带有一堆属性的'events'数据库。如何让我的用户搜索“活动”。我已经看过关于进行文本搜索的教程,但我正在寻找更多的ON / OFF搜索。

每个事件都有时间,位置(坐标)和一些其他选择器。我希望用户能够根据时间(最小值,最大值)和/或位置(最接近输入坐标)进行搜索,并从选择器中进行选择。

我该怎么做?我应该看一下任何具体的教程。我近在咫尺找不到任何东西。感谢

必须包含多个属性和布尔数学(是“事件”位置5公里范围内的搜索位置。

由于

1 个答案:

答案 0 :(得分:1)

试试scopes。为模型中的每个可搜索属性创建范围 例如时间属性:

scope :time_search, ->(min, max) { where("time_column > ? AND time_column < ?", min, max) }

然后从控制器:Model.time_search(params[:min], params[:max])
您还可以链接范围,例如:Model.scope_1(param).scope_2(param),它将根据这两个范围的条件过滤记录。