新手问题 使用 will_paginate 分页,如何限制仅显示前 100 条记录?

jeky · 2013年02月10日 · 最后由 jasl 回复于 2013年02月14日 · 4008 次阅读

每页记录数,我设置的是 10。我想实现的是:显示最近 100 条记录,即最多 10 页。 没用限制条数是这么写的:

@posts = Post.where("postdate <= '#{Time.now.in_time_zone().strftime('%Y-%m-%d %H:%M:%S')}'").paginate(:page => params[:page]).order('postdate DESC')

但是我想限制一下,只取最近的前 100 条。这时, 我把 .limit(100) 加到 .paginate(:page => params[:page]) 前面,无任何效果。 加到后面,却发现效果变成了:设置每页记录数为 100 条。

那么,如何实现:只取最近的前 100 条呢? 请各位指点一下,谢谢!

#1 楼 @lgn21st 文档看了,只有 per_page 方法,这个是设置每页的记录数。不是我想要的呀。

#3 楼 @lgn21st 谢谢,搞定!添加了一句代码就可以了:

@posts.total_entries = 100 if(@posts.total_entries > 100)

如果用户输入第 11 页,直接修改为第 10 页不就可以了?

不需要这么复杂吧。。。利用 query chain 加一条 limit 的限定就好了呗 @posts = Post.limit(100).page params[:page]

需要 登录 后方可回复, 如果你还没有账号请 注册新账号