很长一段时间以来,我一直对应该是一个简单的查询感到头疼。我查看了 StackOverflow 上的所有文档和示例,以及关于Tire
此处的大多数问题,但均未成功。
基本上,我试图根据一些相关模型的 ID 过滤我的搜索结果。
这是模型(请注意,我目前仍在使用动态映射):
class Location < ActiveRecord::Base
belongs_to :city
has_and_belongs_to_many :tags
# also has a string attribute named 'kind'
end
我想要做的是按city_id
、 按 1tag_id
和 按过滤我的搜索查询kind
。
我已经尝试构建查询,但我只收到错误,因为我似乎无法正确构建它。这是我到目前为止所拥有的(不工作):
Location.search do
query { string params[:query] } if params[:query].present?
filter :term, { city_id: params[:city_id] } if params[:city_id].present? # I'd like to use the ids filter, but have no idea of the syntax I'm supposed to use
filter :ids, { 'tag.id', values: [params[:tag_id]] } if params[:tag_id].present? # does not compile
filter :match, { kind: params[:kind] } if params[:kind].present? # does not compile either
end