我有一个带有一堆属性的'events'数据库。如何让我的用户搜索“活动”。我已经看过关于进行文本搜索的教程,但我正在寻找更多的ON / OFF搜索。
每个事件都有时间,位置(坐标)和一些其他选择器。我希望用户能够根据时间(最小值,最大值)和/或位置(最接近输入坐标)进行搜索,并从选择器中进行选择。
我该怎么做?我应该看一下任何具体的教程。我近在咫尺找不到任何东西。感谢
必须包含多个属性和布尔数学(是“事件”位置5公里范围内的搜索位置。
由于
答案 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)
,它将根据这两个范围的条件过滤记录。