您的位置:首页 > 大数据 > 人工智能

rails2.3.XX中使用will_paginate分页插件,并实现Ajax分页

2012-02-01 00:17 363 查看
======================================================

注:本文源代码点此下载

======================================================

早在rails1.xx中,分页插件是内置的辅助方法,但进入rails2后,该方法已经被废除,改成插件的形式使用。
我使用的环境是winxp + ruby1.8.7 + rails 2.3.14。(抱怨一下下:win下开发rails是一件灰常灰常灰常痛苦的事情,t.t)
安装
will_paginate插件有两种安装方式:
一种是作为gem安装,gem install mislav-will_paginate,安装成功后在environment.rb文件中加上
config.gem 'mislav-will_paginate','2.3.15'
后面的2.3.15是安装的版本,自己看一下什么版本写上就ok;
另外一种安装方式是作为插件安装:
在https://github.com/mislav/will_paginate/tags中友各种版本的will_paginate插件,下载的时候要看好了,如果像我这样使用rails2的就不要下载最新的,那是rails3下使用的。下载下来后解压到vendor/plugins中,重命名为will_paginate就ok啦!
使用
在controller中将原来的
@products = product.all
替换为
@products = product.paginate(:page=>params[:page],:per_page=>3)
其中params[:page]是传回的参数,表明是第几页,:per_page是每页显示几条信息。
然后再view中加上
就ok了。
实现ajax分页
在插件中找到view_helpers.rb文件,添加代码
def will_paginate_remote(paginator, options={})
update = options.delete(:update)
url = options.delete(:url)
str = will_paginate(paginator, options)
if str != nil
str.gsub(/href="(.*?)"/) do
"href=\"#\" onclick=\"new ajax.updater('" + update + "', '" + (url ? url + $1.sub(/[^\?]*/, '') : $1) +
"', {asynchronous:true, evalscripts:true, method:'get'}); return false;\""
end
end
end
并在页面中加入
然后讲原来的
修改为
'blogs',:url=>nil)%>
就ok啦~! 很快的吧~~

======================================================

在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: