0

フィルタリング部分を実行しようとしています。フィルタリングとは、ユーザーがその製品の詳細に基づいていくつかの選択肢を選択したときに表示されることを意味します。ユーザーが女性 (部門) と男性部門を選択すると、女性と男性の両方に属するすべての製品が表示されます。これを行うには、sunspot を使用して 2 つのオブジェクトを連結します。正常に動作しています。しかし、Kaminari を使用してページネーションを行おうとしている場合、ユーザーが女性のように 1 つの部門のみを選択すると、問題なく機能します。

ユーザーが男性と女性の両方を選択すると、次のようなエラーがスローされます。

配列の未定義のメソッド「current_page」

上記の作業を次のコードのように行っています。

deptids=["1" "2"]
deptids.each do |did|
    @search_res=ProductDetail.search do
        with :department_id, did                  
        paginate :page=>params[:page], :per_page=>15
    end
end

Kaminari Gem を使用してオブジェクトの配列のページネーションを行う方法を教えてください。

Kaminari を使用してオブジェクトの配列のページネーションを行う方法、または 2 つのオブジェクトを 1 つのオブジェクトに追加する方法を教えてください。

4

1 に答える 1

0

この Stackoverflow リンクの助けを借りて、この問題を解決しました。

私が変更したコードはproduct_detailsコントローラーにあります

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.present?
        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

ビュー内 _index.html.erb

<%= paginate @products, :remote=>true %> 
于 2012-04-12T02:31:21.773 に答える