宝典:第二式 2.0之分页 will_paginate

本文介绍Rails应用中使用will_paginate插件实现分页的方法。从安装配置到编写分页代码,再到结合搜索功能进行分页,文章提供了详细的步骤与代码示例。
Rails分页plugin之will_paginate
搜索结果的分页显示是一个常用功能,实现方式有很多中,rails也内建了对分页的支持,但是[b]rails2.0[/b]将去掉分页组件,将分页功能交给plugin去实现,这里通过一个简单的例子展示如何使用最流行的rails分页plugin -- will_paginate.

1.安装will_paginate,编写分页代码
安装:

[i]ruby script\plugin install svn://errtheblog.com/svn/plugins/will_paginate[/i]安装成功后,开始编写分页代码

修改products_controller.rb,找到index方法

@products = Product.paginate :page => params[:page],
:per_page => 5

保存加入翻页,修改app/view/products/index.rhtml,在最后加入一行
<%= will_paginate @products %>

写好后打开页面即可看到看到现在显示前5个产品了和翻页了,试着点击next,previous进行翻页
<%= will_paginate @products,:prev_label=> '上一页',:next_label=> '下一页' %>
可定义上下翻页显示

4.加入搜索
在index.rhtml适当位置加入:

<% form_tag products_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>

这里注意,:method => 'get'必须指定, submit_tag的:name属性设为nil,避免在url中出现不必要的内容

将products_controller.rb的index方法修改为

@products = Product.paginate :page => params[:page],
:per_page => 5,
:conditions => ["name like ?", "%#{params[:search]}%"]
注意在加入搜索条件时的写法,这样可以避免sql注入,提高安全性

试着进行搜索,可以看到搜索结果很好的进行了分页.
在此还提供一些分页统计信息

统计信息:
共<%=@products.total_entries%>条, 共<%=@products.page_count %>页,当前第<%= @products.current_page%>页.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值