分页问题----图片浏览系统之三

昨天做的图片分页,今天记录下来以供和我一样的新手学习

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的调用,很可能会出来找不到模板的错误,所以在使用分页的前一个页面应该是使用重定向到用到分页方法的页面.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值