私はかなり長い間、単純なクエリであるべきものに対して頭を悩ませてきました。すべてのドキュメントと例、およびTire
StackOverflow に関するほとんどの質問を調べましたが、成功しませんでした。
基本的に、関連するモデルの ID に基づいて検索結果をフィルタリングしようとしています。
モデルは次のとおりです (現時点ではまだ動的マッピングを使用していることに注意してください)。
class Location < ActiveRecord::Base
belongs_to :city
has_and_belongs_to_many :tags
# also has a string attribute named 'kind'
end
私がやろうとしているのは、検索クエリを 、 、および でフィルタリングするcity_id
ことtag_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