Ruby on rails 当前页面上的Access集合对象将分页

Ruby on rails 当前页面上的Access集合对象将分页,ruby-on-rails,ruby,pagination,will-paginate,Ruby On Rails,Ruby,Pagination,Will Paginate,技术规格:ruby 2.1.5p273,Rails 4.2.3 我正在使用will_paginate gem对页面上的模型进行分页。是否可以访问当前页面上打印的模型实例 在项目控制员中: @paginate_projects = @projects.keys.paginate(:page => params[:page], :per_page => 7) 使用Pry,我可以获得: $ @paginate_projects.current_page => 2 我希望能够做到以

技术规格:ruby 2.1.5p273,Rails 4.2.3

我正在使用will_paginate gem对页面上的模型进行分页。是否可以访问当前页面上打印的模型实例

在项目控制员中:

@paginate_projects = @projects.keys.paginate(:page => params[:page], :per_page => 7)
使用Pry,我可以获得:

$ @paginate_projects.current_page => 2
我希望能够做到以下几点:

$ @paginate_projects.current_page.projects => [Project #8, Project #9, Project #10, Project #11, Project #12, Project #13, Project #14]
@projects = Project.some_scope_or_query
                     .paginate(page: params[:page],
                               per_page: 7)
提前感谢您的帮助。我确实看过这个:

我从未使用过
将分页
gem,但我相信
@paginate\u项目
是项目与其他方法的ActiveRecord关系

从您提供的链接:

实际上,分页查找返回的数组就是这种情况的实例 小班。您可能认为WillPaginate::Collection是一个普通的 具有一些额外属性的数组。视图使用这些属性 帮助程序生成正确的页面链接


我建议直接对
@projects
(或者可能是
Project
)进行分页,而不是对
@projects.keys
进行分页(我不确定这会返回什么结果)

在模型或ActiveRecord集合或作用域上调用
#paginate
时,它仅返回该页的记录

比方说,在控制器中,您执行以下操作:

@projects = Project.some_scope_or_query
@paginate_projects = @projects.paginate(page: params[:page], per_page: 7)
在您的视图/模板中,
@paginate_projects
变量将只包含当前页面的项目值

就个人而言,我建议直接在模型上分页,除非控制器中有特别复杂的逻辑。比如:

$ @paginate_projects.current_page.projects => [Project #8, Project #9, Project #10, Project #11, Project #12, Project #13, Project #14]
@projects = Project.some_scope_or_query
                     .paginate(page: params[:page],
                               per_page: 7)

在您看来,您将使用
@projects
作为记录集合。

方法
paginate
从您的模型返回一个
ActiveRecordRelation
。它就像一个可以遍历和操作的对象数组。我真的不明白你的问题。嗨@MurifoX,我只想访问当前页面的对象数组。你知道怎么做吗?