2015-05-07 30 views
0

我一直有問題,得到任何分頁工作分類的帖子。例如,所有帖子的索引,分頁工作,但只要我點擊類別,我得到這樣的錯誤。Ruby on Rails:無法添加分頁[Kaminari或will_paginate]分類的帖子

我在做什麼錯?

undefined method `total_pages' for #<Post::ActiveRecord_Relation:0x007f60061f5f78> 

帖子控制器與雷

def index 
    if 
     params[:category].blank? 
     @posts = Post.all.order("created_at DESC").page(params[:page]).per(1) 
    else 
     @category_id = Category.all 
     @category_id = Category.find_by(name: params[:category]).id 
     @posts = Post.where(category_id: @category_id).order("created_at DESC") 
    end 
end 

帖子控制器,will_paginate

def index 
     if 
      params[:category].blank? 
      @posts = Post.all.order("created_at DESC").paginate(page:params[:page], per_page: 1) 
     else 
      @category_id = Category.all 
      @category_id = Category.find_by(name: params[:category]).id 
      @posts = Post.where(category_id: @category_id).order("created_at DESC") 
     end 
    end 

查看:

<%= paginate @posts %> 

查看:

<%= will_paginate @posts %> 

回答

1

你需要page或在其他控制器部分@postspaginate方法,

def index 
    if 
     params[:category].blank? 
     @posts = Post.all.order("created_at DESC").paginate(page:params[:page], per_page: 1) 
    else 
     @category_id = Category.all 
     @category_id = Category.find_by(name: params[:category]).id 
     @posts = Post.where(category_id: @category_id).order("created_at DESC").paginate(page:params[:page], per_page: 1) 
    end 
end 
+0

我還是新的,但我要如何去這樣做?你的意思是'def page @posts = Post.all.order(「created_at DESC」)。paginate(page:params [:page],per_page:1) end'? – JamesRocky

+0

太好了,非常感謝! – JamesRocky