2015-10-20 63 views
0

我的模型是多模式搜索轨

class Product < ActiveRecord::Base 

has_many :category_products 
has_many :categories , through: :category_products 
has_many :product_tags 
has_many :tags, through: :product_tags 

我想搜索所有三种型号分类,标签,Products.It工作正常,但问题,我面对的是,当我搜索的分类和标签我想得到那里的相关产品。但是,如何区分何时搜索产品列和何时关联表。

我的代码是

@search = Sunspot.search[Product,Category,Tag] do 
    fulltext params[:search] 
    paginate(:page => params[:page] || 1, :per_page => 3) 
    end 
    @products = @search.results 

在我想要得到的产品到底。

回答

1

添加 '类别' 和 '标签' 到你的产品搜索信息是这样的:

class Product < ActiveRecord::Base 
    searchable do 
    text :name 
    text :categories do 
     categories.map { |category| category.name } 
    end 
    text :tags do 
     tags.map { |tag| tag.name } 
    end 
    end 
end 

@search = Sunspot.search(Product) do 
    fulltext params[:search] 
    paginate(:page => params[:page] || 1, :per_page => 3) 
end 
@products = @search.results 

链接:https://github.com/sunspot/sunspot

希望这有助于!

+0

It works .... :) –