Ruby Rails:无法将 [Kaminari 或 will_paginate] 的分页添加到分类帖子

Ruby on Rails: Cannot add pagination both [Kaminari or will_paginate] to categorized posts

我在让任何分页用于分类帖子时遇到问题。例如,所有帖子所在的索引,分页有效,但只要我单击类别,我就会收到这样的错误。

我做错了什么?

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

与 Kaminari 一起发布控制器

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

您需要 pagepaginate 方法用于 @posts 在控制器的其他部分,

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