2016-03-17 13 views
5

Tôi sử dụng kaminari và lỗi.phương pháp không xác định kaminari `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 

Tôi cũng sử dụng .page params[:page].per(2) theo .order(created_at: :desc) nhưng không hoạt động

views/danh sách/index.html.erb

<%= paginate @lists %> 

lỗi là ở đây

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"> 

Tôi không biết làm thế nào để làm, tôi đang sao chép railscasts về Kaminari, và video là Ok, tôi có một lỗi. cảm ơn giúp tôi.

Trả lời

5

Bạn cần phải đánh số trang cả các truy vấn. Tôi khuyên bạn nên một cái gì đó như:

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 

Nếu không @lists sẽ không thể là một đối tượng pagination khi params[:tag] là con số không.

+0

Cảm ơn một triệu! Nó hoạt động, rất cảm ơn. thêm vào danh sách . người dùng .page (params [: page]) mỗi (5) '' '@lists = @ lists.order (created_at:: desc) .page (params [: page]). per (5)' '' trang OK. – dongdongxiao

+0

@ user5590209 Nếu tôi đã giải quyết được vấn đề của bạn, vui lòng chấp nhận câu trả lời của tôi bằng cách nhấn vào dấu kiểm bên cạnh. – Shelvacu

+0

cảm ơn nhắc nhở, tôi mới đến đây. bây giờ là nó ok? chọn câu trả lời của bạn là tốt nhất và biểu tượng chick nike. – dongdongxiao

0

Hãy thử để đánh số trang với:

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

Cảm ơn câu trả lời của bạn. Tôi làm điều đó, nhưng không có công việc. – dongdongxiao

Các vấn đề liên quan