思考Sphinx,Rails,:has_many:through => ... 具有

时间:2009-12-22 11:01:42

标签: ruby-on-rails ruby

型号:产品

has-many product-categories, :through => ...

问题1)如何通过思考sphinx索引多对多关联

我必须使用吗?

问题2)如何在控制器中搜索

离。 Product.search params [:search-params],:conditions => {some_conditions}

1 个答案:

答案 0 :(得分:2)

我没有在has_many上试过这个:所以如果你有枪击我的火焰,但我不明白为什么这对你也没用,(我在has_many协会上使用它你基本上在索引定义中使用你的关联。然后对该模型的搜索也将搜索子记录。

class Product < ActiveRecord::Base
  has_many :product_categories

  define_index do
    indexes a_product_field_to_index
    indexes product_categories.name, :as => :categories
  end
end

在控制器中:

@products = Product.search(params[:query] || '')
#params[:query] is simply the search string, I can't remember if you need to sanitize this, I would always assume you do unless you find out otherwise

在视图中:

@products.each do |p| 
  p.categories.each do |cat|
  end
end

如果你还没有它,我强烈推荐peepcode提供的思维 - 狮身人面像书:https://peepcode.com/products/thinking-sphinx-pdf

希望有所帮助。