2016-03-17 34 views
5

カミナリを使用しており、エラーです。カミナリ未定義メソッド `total_pages '

Gemfile:

# gem 'will_paginate', '~> 3.0.6' 
# gem 'will_paginate-bootstrap' 

gem 'kaminari' 

lists_controller.rb

def index 
    if params[:tag] 
     @lists = List.tagged_with(params[:tag]).order(created_at: :desc).paginate(page:params[:page], per_page: 3) 
    else 
     @lists = List.all.order(created_at: :desc) 
    end 
    end 

私はまた、ユーザー.page params[:page].per(2).order(created_at: :desc) に従うが、

ビュー/リスト/ index.html.erb

<%= paginate @lists %> 
に動作しません

エラーは私が行う方法がわからない、ここで

undefined method `total_pages' for #<List::ActiveRecord_Relation:0x007fa2303e3fa8> 
Extracted source (around line #26):    
    </div> 
    </div> 
<%= paginate @lists %> 
    <div class="container"> 
    <div class="row"> 
     <div class="col-md-8"> 

で、私はバグを持って、私は雷に関するrailscastsをコピーしていますし、ビデオもOKです。ありがとうございます。

答えて

5

あなたは両方のクエリをページ付けする必要があります。 params[:tag]がnilであるとき、そうでない場合@listsは、ページネーションオブジェクトではありません

def index 
    if params[:tag] 
    @lists = List.tagged_with(params[:tag]) 
    else 
    @lists = List.all 
    end 
    @lists = @lists.order(created_at: :desc).paginate(page:params[:page], per_page: 3) 
end 

:私のようなものをreccomend。

+0

ありがとう!それは非常に非常に感謝、動作します。 @listを追加します。 (params [:page])。per(5) '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ページOK。 – dongdongxiao

+0

@ user5590209あなたの問題を解決したら、その答えをその隣のチェックマークを押して受け入れてください。 – Shelvacu

+0

感謝を思い出させる、私はここに来る新しいです。今は大丈夫ですか?あなたの答えを選ぶと、ニックのロゴがベストです。 – dongdongxiao

0

はとページ付けするようにしてください:

List.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per(3) 
+1

ありがとうございました。私はそれをするが、仕事はしない。 – dongdongxiao

関連する問題