関連付けを使用して、カテゴリおよびサブカテゴリ内にある投稿のコレクションがありますbelongs_to
。さらに、投稿はbelongs_to
私の州および都市モデルと関係があります。
request.subdomain
URL のサブドメインのチェックを使用して、コントローラーでの投稿の表示をそれぞれの場所 (都市または州) に属するものに制限しています。これは、Tire/ElasticSearch を使用した検索以外のすべてで完全に機能します。
何らかの理由で、タイヤの検索結果を特定の場所に属する投稿に限定することができません。モデルでa を使用してモデルにサブドメインを取得し、サブドメインに関連付けられている場所であるコントローラーにcater_accessor :request_subdomain
a を追加しようとしました。before_filter
@city_or_state
def set_request_subdomain
Post.request_subdomain = @city_or_state if !@city_or_state.nil?
end
これが私のモデルです:
def self.search(params)
tire.search(load: true, page: params[:page], per_page: 10) do
query { string params[:query], default_operator: "AND" } if params[:query].present?
filter :terms, :published => [true]
filter :terms, :request_subdomain => [:city_subdomain || :state_subdomain]
end
end
def to_indexed_json
to_json(methods: [:city_name, :city_subdomain, :state_name, :state_subdomain])
end
def city_name
self.city.name
end
def city_subdomain
city.subdomain.titleize
end
def state_name
self.state.name
end
def state_subdomain
state.subdomain.titleize
end
場所 (つまり、サブドメイン) によって結果を制限する検索が必要です。
ここで何が欠けていますか?
更新:このrailscast に従って、ファセットを機能させることができました...ファセットに基づいて (つまり、ユーザーが railscast のようにファセットを選択しなくても) 検索される項目を制限できるのではないかと考えていますが、それを機能させることができませんでした。
何か案は?