2010-09-29 52 views
0

我正尝试在嵌套资源上设置searchlogic。我有类别的has_many:产品类别也的has_many:品牌通过:产品嵌套资源的Rails应用程序,需要有关SearchLogic的帮助

所以其结构类别/品牌/产品

当用户浏览他们点击一个类别,它使用类别#show行为的网站。

#Category_controller 
def show 
    @category = Category.find_by_url_name(params[:id]) 
    @brands = @category.brands 
    @categories = Category.find(:all) 
    @meta_title = "#{@category.name}" 

    respond_to do |format| 
    format.html do |wants| 
     @brand = @brands.first 


     @products = @category.products.paginate(:conditions => {:brand_id => @brand}, :page => params[:page]) 
     render :template => 'brands/show' 
    end 
    format.xml { render :xml => @category } 
    end 
end 

因此,它呈现该类别的可用品牌列表,并在第一个列出的品牌中显示产品。

如果用户点击列表中的其他品牌,用户将被带到Brand#show动作。

#Brands_controller 
def show 
    @category = Category.find_by_url_name(params[:category_id]) 
    @brand = Brand.find(params[:id]) 
    @search = Product.search(params[:search]) 
    @products = @search.paginate(:conditions => {:brand_id => @brand, :category_id => @category}, :page => params[:page]) 
    @meta_title = "#{@brand.name}" 
    respond_to do |format| 
    format.html # show.html.erb 
    format.xml { render :xml => @brand } 
    end 

我已经开始实施Searchlogic,gem installed和一些代码。但是,当它搜索它从URL中删除类别 http:// localhost:3000/brands/14?search [order] = ascend_by_price 虽然它不是一个主要问题,但它不工作。我有面包屑,需要访问相关的类别和品牌信息...

因此,在一天结束时,我试图学习如何在嵌套资源上实现Searchlogic。任何人都可以在那旅程中指导我吗?

end 

回答

0

我能够在类别#show上得到这个运行,但仍然没有Brand#show。类别#显示中的修复为

`  def show 
    @category = Category.find_by_url_name(params[:id]) 
    @brands = @category.brands 
    @categories = Category.find(:all) 
    @meta_title = "#{@category.name}" 

    respond_to do |format| 
    format.html do |wants| 
     @brand = @brands.first 

     @search = @category.products.search(params[:search]) 
     @products = @search.paginate(:conditions => {:brand_id => @brand}, :page => params[:page]) 
     render :template => 'brands/show' 
    end 
    format.xml { render :xml => @category } 
    end 
end` 

品牌仍然无法正常工作,有什么想法?