2008-02-04

rails 分页问题

在程序里面有一个array。
里面装着里面装的杂七杂八的东西。
虽然都是根据Model.find()得到的。
但是却是从几个不同的model(table)中得到的。
然后根据某个特定的关系,选定顺序的放进去的。
个别页面比较大。想做一下分页。
自己简单写了一个。只支持上一页,下一页之类的东西。
不像will_paginate插件那么完美。
但是可以用了。
因为其他地方都是用的will_paginate,所以这里感觉比较奇怪。
因为array是由多个model中的数据组成的。
所以,用 Model.paginate :conditions=>......
应该不行吧。


不知道will_paginate可不可以直接对一个array分页呢?
评论
Stainlesssteel 2008-02-13
如果能用sql得出那个array,还是尽量用 paginate_by_sql
rainchen 2008-02-12
Auckland 写道
十分感谢。问题已经解决了。另外,我找到了这个。大家可以看看。 http://www.desimcadam.com/archives/8


will_paginate正是接纳了他的提议,可参见 will_paginate/lib/will_paginate/core_ext.rb:

require 'will_paginate/collection'

unless Array.instance_methods.include? 'paginate'
  # http://www.desimcadam.com/archives/8
  Array.class_eval do
    def paginate(page = 1, per_page = 15)
      WillPaginate::Collection.create(page, per_page, size) do |pager|
        pager.replace self[pager.offset, pager.per_page].to_a
      end
    end
  end
end

在其blog评论中也可看到 Chris 的回复。
rsu 2008-02-05
哇,楼主也在akl么?我想知道你是否在做rails的工作?能不能留下联系方式?
Auckland 2008-02-05
rainchen 写道
will_paginate已经给Array添加了paginate(page = 1, per_page = 15)
方法,并可以配合其view helper使用(如果不嫌太费内存的话),用法就如Model.paginate()的结果一样。

十分感谢。问题已经解决了。另外,我找到了这个。大家可以看看。
http://www.desimcadam.com/archives/8
rainchen 2008-02-04
will_paginate已经给Array添加了paginate(page = 1, per_page = 15)
方法,并可以配合其view helper使用(如果不嫌太费内存的话),用法就如Model.paginate()的结果一样。
carlosbdw 2008-02-04
网上好像有如何对数组,hash进行分页的,不过都挺麻烦。
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

Auckland
搜索本博客
博客分类
存档
最新评论