【问题标题】:Rails app with nested resources, need help with SearchLogic具有嵌套资源的 Rails 应用程序,需要 SearchLogic 帮助
【发布时间】:2010-09-29 15:35:59
【问题描述】:

我正在尝试在嵌套资源上设置搜索逻辑。我有类别 has_many :products 也类别 has_many :brands through :products

因此在结构上它的类别/品牌/产品

当用户浏览网站时,他们单击一个类别,该类别使用 Category#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,并准备了一些代码。但是当它搜索时,它会从 url 中删除类别 http://localhost:3000/brands/14?search[order]=ascend_by_price 虽然如果它有效,它不是一个主要问题,但它没有。我有需要访问相关类别和品牌信息的面包屑...

所以最后我想学习如何在嵌套资源上实现 Searchlogic。有人可以指导我完成那段旅程吗?

end

【问题讨论】:

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


    【解决方案1】:

    我能够在 category#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`
    

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

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 2014-05-27
      • 2011-03-15
      • 2015-06-30
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多