我有一组使用belongs_to
关联的类别和子类别中的帖子。此外,这些帖子belongs_to
与我的州和城市模型有关。
request.subdomain
我通过对 URL 中的子域进行检查,将控制器上的帖子显示限制为属于相应位置(即城市或州)的帖子。这对除了使用 Tire/ElasticSearch 进行搜索之外的所有内容都非常有效。
出于某种原因,我无法让轮胎将搜索结果限制为属于特定位置的帖子。我尝试使用模型中的 a 将子域放入模型中,并在控制器中cater_accessor :request_subdomain
添加一个与子域关联的位置。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 并且能够让 Facets 工作......我在想也许我可以限制基于 Facet 搜索的项目(即没有用户在 railscast 中选择 Facet),但我没有无法让它发挥作用。
有任何想法吗?