2015-10-20 61 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 .... :) –