【问题标题】:will_paginates not showing records when clicking the pageswill_paginates 在单击页面时不显示记录
【发布时间】:2014-08-14 13:38:01
【问题描述】:

我正在使用 will_paginate gem,对记录数组进行分页。

显示分页链接。让我们默认说前 5 条记录,但是当我点击第 2 页时,整个页面变为空白。

代码如下:-

 <%@report=@report.paginate(:page => params[:page], :per_page => 5) %>
 <%= will_paginate @report %>

这里的@report 是记录数组。 请帮忙

【问题讨论】:

  • 您的代码 sn-p 不完整。 will_paginate 为第 2 页生成的链接是什么?
  • 见下面我的回答。 .paginate 调用应该在控制器中,而不是在视图中。您正在视图中递归地重新分配@report。
  • 不,>@report 不等于 Report.all,它是基于某些条件的记录数组。并想使用 >@report.paginate,它在我的其他控制器中工作正常。

标签: ruby-on-rails will-paginate


【解决方案1】:

看起来,在你看来,你做了一个

@report = Report.all

你应该把它改成

@report=Report.paginate(:page => params[:page], :per_page => 5)

这是上面代码 sn-p 的第一行。每次您从一个页面导航到另一个页面时,.paginate 将从数据库中获取数量等于 per_pageLIMIT)的记录。

它将使用page 作为OFFSET。所以如果你访问的是第 2 页,OFFSET 的值为

 (page number - 1) x per page 
 (2 - 1) x 5 = 5

意思是,第 2 页将显示 id 从 6 (OFFSET + 1) 到 10 (OFFSET + LIMIT) 的记录

对于第 5 页,偏移量为

  (5 - 1) x 5 = 20

所以第 5 页上的记录的 id 将从 21 到 25。依此类推...

要启用 will_paginate 执行此操作,您应该在模型 Report 上调用 .paginate。不在实例变量@report

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2012-12-05
    • 1970-01-01
    相关资源
    最近更新 更多