will_paginate的使用

rails自带的分页功能有限,加上will_paginate插件能够很强的增加功能

 

1.一对多的分页最简单:比如一个类目下很多文章,要显示气象学下的所有文章并20篇分为一页:

def show

  @category = Category.find(params[:id],:include=>:papers])                

@papers=Paper.paginate_by_category_id category.id,:page=>params [:page],:per_page=>20

end

在rhtml中只需要

<%= will_paginate @papers %>

他自己带有很漂亮的分页css,当然要加进css文件。

 

2.多对多还没研究到,rails自带的paginate可以处理,

 

def show
        @author = Author.find(params[:id],:include=>[:papers])
        @paper_pages, @papers = paginate :paper,
          :join=>"JOIN authors_papers on (authors_papers.paper_id=papers.id and authors_papers.author_id=#{@author.id})",:per_page=>20
end

 

<div class="pagination">
<%= link_to '<<', { :page => @paper_pages.current.previous } if @paper_pages.current.previous %>
<%= pagination_links(@paper_pages,:window_size=>5) %>
<%= link_to '>>', { :page => @paper_pages.current.next } if @paper_pages.current.next %>

 </div>

 

这个效率肯定不高。等学会了will_paginate再来修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值