rails中的常用分页一

snippets.dzone.com/posts/show/389

Sometimes it's nearly impossible to paginate a result set using the built-in :limit and :offset parameters of find(:all). Instead, you can fetch a complicated query and paginate the results afterward.

Add the following to application.rb:
ruby 代码
 
  1. def paginate_collection(collection, options = {})  
  2.    default_options = {:per_page => 10, :page => 1}  
  3.    options = default_options.merge options  
  4.      
  5.    pages = Paginator.new self, collection.size, options[:per_page], options[:page]  
  6.    first = pages.current.offset  
  7.    last = [first + options[:per_page], collection.size].min  
  8.    slice = collection[first...last]  
  9.    return [pages, slice]  
  10.  end  

Call it from within your action like this:
ruby 代码
 
  1. @pages@users = paginate_collection User.find_custom_query, :page => @params[:page]  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值