浏览 1377 次
锁定老帖子 主题:分页问题----图片浏览系统之三
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-17
1. 在Rails2.0.2之前,我们可以借助Rails自带的分类方法, 在controller中直接写 @picture_pages,@pictures = paginate :pictures, :per_page => 10 返回的@picture_pages是一个paginator对象,他会把所有Picture模型对象分为多个页面,每页10个对象.此外,该声明还会取出一页所包含的用户对象,将他们放进@pictures变量中 在view中直接拿出这一页的对象 <table> <tr><th>Picture</th></tr> <% for picture in @pictures %> <tr><td><%= picture.name %></td></tr> <% end %> </table> <hr> <%= paginate_links(@picture_pages) %> </hr> 2. 使用will_paginate插件 我的插件是同学给我的,直接放到要使用的工程下面的vender/plugin/下,要重启服务器才可以使插件起作用 在controller中写 @pictures = Picture.paginate :page => params[:page], :per_page => 3 返回的就是该页的对象 在view中写 <%= will_paginate @pictures, :prev_label => 'Previous Page', :next_label => 'Next Page' %> 即可实现分页功能 3.直接手工实现分页的方法 @items = Picture.find( :limit => 10,:offset => params[(Page-1)*10]) render(:partial => “abc”, :collection => @items %> 这个方法我还没有用,Page需要传入的 只不过应该是效率最高的 注意:在使用will_paginate分页的是使用,会自动根据点击的页数在当前的地址栏的地址上加上&page=?的一段,然后发起调用,也就是说,假如你的login之后使用render进入了图片显示的页面,这时候地址栏上的地址还是login的,此时点击NextPage时就会再次发起对login的调用,很可能会出来找不到模板的错误,所以在使用分页的前一个页面应该是使用重定向到用到分页方法的页面. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |