连接相同模型的两个活动记录,并在Ruby on Rails中为结果对象应用分页

时间:2012-04-11 05:52:20

标签: ruby-on-rails-3 activerecord

我试图做过滤部分。过滤意味着,当用户根据该产品选择某些选项时,将显示详细信息。如果用户选择女性(部门)和男性部门,则应显示属于女性和男性的所有产品。为此,我连接两个对象。它工作正常。但是当我试图进行分页时,它会抛出一个错误:

  

数组

的未定义方法`current_page'

我想连接两个ActiveRecord对象,结果应该只在同一个活动记录的对象中。请告诉我怎么做。

现在正在尝试的是:

@products += @prods

修改

deptids=["1" "2"]
deptids.each do |did|
    @prods=ProductDetail.where("department_id=?",did)
    if !(@products.nil?)
        @products += @prods
    else
        @products=@prods
    end
end

1 个答案:

答案 0 :(得分:0)

在谷歌搜索之后我开始知道问题是分页的,因为我得到了未定义的方法current_page for Array。因此我使用kaminari paginate数组进行分页,我的问题得到解决。对于Kaminari paginate数组,我提到了this stackoverflow link

我改变了我的代码:

def index
    count=ProductDetail.count
    deptids=["1" "2"]
    deptids.each do |did|
        @search_res=ProductDetail.search do
            with :department_id, did    
            paginate :page=>1, :per_page=>count
        end
    end
    if !(@products.nil?)
        unless @products.kind_of?(Array)
          @products = @products.page(params[:page]).per(30)
        else
          @products = Kaminari.paginate_array(@products).page(params[:page]).per(30)
        end
    end
end