will_paginates在单击页面时不显示记录

时间:2013-10-09 10:10:02

标签: ruby-on-rails will-paginate

我使用的是will_paginate gem,用于记录数组的分页。

它显示了分页链接。我们默认说前五条记录,但是当我点击第2页时,整个页面都是空白的。

代码如下: -

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

这里@report是一系列记录。 请帮忙

1 个答案:

答案 0 :(得分:0)

在您看来,您已经完成了

@report = Report.all

您应该将其更改为

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

这是您上面代码段中的第一行。每次从一个页面导航到另一个页面时,.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页上的记录将具有从21到25的ID,依此类推......

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