具有嵌套资源的Rails app,需要SearchLogic的帮助

时间:2010-09-29 15:35:59

标签: ruby-on-rails ruby will-paginate searchlogic

我正在尝试在嵌套资源上设置searchlogic。我有类别has_many:产品还有类别has_many:品牌通过:产品

结构上的类别/品牌/产品

当用户浏览网站时,他们会点击一个类别,该类别使用Category#show action。

#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

因此,它会呈现该类别的可用品牌列表,并以第一个上市品牌展示产品。

如果用户点击列表中的其他品牌,则用户将进入品牌#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,以及一些代码。但是当它搜索时,它会从网址中删除该类别 HTTP://本地主机:3000 /品牌/ 14搜索[顺序] = ascend_by_price 虽然它不是一个主要问题,如果它起作用,它不会。我有面包屑,需要访问相关的类别和品牌信息...

所以在一天结束时,我正在尝试学习如何在嵌套资源上实现Searchlogic。在这段旅程中,有人能引导我吗?

end

1 个答案:

答案 0 :(得分:0)

我能够在#show类别上运行,但仍然没有Brand#show。 Category#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`

品牌仍然无效,有什么想法吗?