[Rails 常用插件简介]ajax_paginate
上一篇 / 下一篇 2007-09-06 11:38:36 / 个人分类:projects
查看( 16 ) /
评论( 45 )
TAG:
-
martin
发布于2007-09-06 22:53:20
-
内容已更新,请见5,6楼
[ 本帖最后由 martin 于 2007-9-7 09:55 编辑 ]
-
sishen发布于2007-09-06 23:13:16
-
good job, :)
-
xnine
发布于2007-09-07 08:14:49
-
respond_to do |format|
format.html do
unless params[:page].nil?
render :update do |page|
page.replace_html :page, :partial=>'list'
end
end
end
format.xml do
render :xml => @users.to_xml
这段代码可以带我详细解读下吗?很多高人写的都是这样的
谢谢
-
martin
发布于2007-09-07 08:25:17
-
Update
早上又花了几分钟把昨天的代码稍微该了下,将rails支持的ajax callback加进去,修改remote_page_link_or_spanCODE:
def remote_page_link_or_span(page, span_class, text, param, options)新增
unless page
content_tag :span, text, :class => span_class
else
link_to_remote text, @@default_options.merge(options).merge({:url=>params.merge(param.to_sym => (page !=1 ? page : nil))})
end
endCODE:
@@default_options = {:method=>:get, :update=>''}那么这样我们的页面上可以加上任何原来rails ajax的callback了,来几个例子
一:ConfirmCODE:
<%=ajax_paginate @users,:confirm=>'Go?'%>看到效果了吗,在提交的时候会确认
二:把昨天偷懒的代码抽取出来CODE:
<%=ajax_paginate @users, :before => %(Element.show('spinner')), :success => %(Element.hide('spinner'))'%>三:如果你的controller不是用rjs做的,即不是CODE:
render :update do |page|你可以直接指定:update
page.replace_html :page, :partial=>'list'
endCODE:
<%=ajax_paginate @users,:update=>'page', :before => %(Element.show('spinner')), :success => %(Element.hide('spinner'))'%>[ 本帖最后由 martin 于 2007-9-7 09:46 编辑 ]
-
martin
发布于2007-09-07 09:52:48
-
刚才我把代码已经放到google code上面了,如果你对上面不感兴趣,只是想用一下,请看这里
一:安装:CODE:
ruby script/plugin install http://ajaxpaginate.googlecode.com/svn/trunk/ajax_paginate二:使用
在View中直接使用CODE:
ajax_paginate @users[,其他ajax的参数,说明请见五楼和Rails 的AJAX_CALLBACK 文档]Done!
三:最新的源码演示,请从这里获取CODE:
svn co http://ajaxpaginate.googlecode.com/svn/trunk/ajax_paginate_demo不懂svn,直接下载该附件
(已更新)
ajax_paginate_demo.rar
(2007-09-07 12:46:20, Size: 263 KB, Downloads: 18)
运行方法:
1:创建数据库
2:修改database.yml 使之正确
3:执行rake db:migrate 创建表结构并导入数据
4:运行测试
四:谁还有兴趣,可以接过去:)
[ 本帖最后由 martin 于 2007-9-7 12:46 编辑 ]
-
martin
发布于2007-09-07 10:04:25
-
QUOTE:
原帖由 xnine 于 2007-9-7 08:14 发表
推荐你先看下DHH的那篇 Discovering a world of Resources on Rails 视频(有PDF演讲稿),看完我们再讨论也会对你更有帮助一点:)
respond_to do |format|
format.html do
unless params[:page].nil?
render :update do |page|
page.replace_html :page, :part ...
http://www.loudthinking.com/arc/2006_06.html
Enjoy
[ 本帖最后由 martin 于 2007-9-7 10:10 编辑 ]
-
blackanger
发布于2007-09-07 10:37:17
-
辛苦了,martin。。。
感动ing。。。
-
blackanger
发布于2007-09-07 11:17:22
-
挺好用,可是加了那个询问go是不是不太爽?
有个小bug,就是回不到第一页
[ 本帖最后由 blackanger 于 2007-9-7 11:19 编辑 ]
-
blackanger
发布于2007-09-07 11:26:52
-
你这样一下把数据都取了出来,如果数据量大,性能上不行吧。。。
-
martin
发布于2007-09-07 11:56:29
-
QUOTE:
原帖由 blackanger 于 2007-9-7 11:17 发表
加了go,仅仅是测试 :confirm效果而已,你可以把他去掉。第一页的问题我来看下
挺好用,可是加了那个询问go是不是不太爽?
有个小bug,就是回不到第一页
[ 本帖最后由 martin 于 2007-9-7 11:59 编辑 ]
-
martin
发布于2007-09-07 11:57:17
-
QUOTE:
原帖由 blackanger 于 2007-9-7 11:26 发表
取数据还是will_paginate的,你看controller,不会把把数据全取出来的。你没认真看代码:) 仅仅每页取20条记录而已,点下一页才会去取下20条数据。
你这样一下把数据都取了出来,如果数据量大,性能上不行吧。。。
-
blackanger
发布于2007-09-07 12:07:10
-
我看到了,呵呵。。。明白了
-
blackanger
发布于2007-09-07 12:08:43
-
还是will_paginate的问题:
我用@products = Product.paginate :per_page =>20, :page=>params[:page]
这种和
@users = User.paginate :all, :page=>params[:page]||1
model里加
class<<self
def per_page
20
end
end
这两种用法有什么区别?
[ 本帖最后由 blackanger 于 2007-9-7 12:09 编辑 ]
-
martin
发布于2007-09-07 12:27:27
-
QUOTE:
原帖由 blackanger 于 2007-9-7 12:08 发表
效果一样,
还是will_paginate的问题:
我用@products = Product.paginate :per_page =>20, :page=>params[:page]
这种和
@users = User.paginate :all, :page=>params[:page]||1
model里加
classCODE:
Product.paginate :per_page =>20你指定了当前查询,每页20条记录,如果你不指定per_page他会去取CODE:
Product.per_page这样也省的你每次都在查询的时候加上per_page了,这个是类函数
当然如果你什么这个也没有设,那么会用默认的per_page,可能是30.
[ 本帖最后由 martin 于 2007-9-7 12:28 编辑 ]
-
martin
发布于2007-09-07 12:45:04
-
[fixed]返回第一页
去除了comfirm选择
最新代码,请从这里获取: http://ajaxpaginate.googlecode.com/svn/trunk/ajax_paginate
演示代码请从这里获取:http://ajaxpaginate.googlecode.com/svn/trunk/ajax_paginate_demo
代码已更新
-
blackanger
发布于2007-09-07 12:52:05
-
对了,你用的什么IDE啊?
-
martin
发布于2007-09-07 13:07:49
-
呵呵,IDEA是我的最爱,他在重构方面是我见到最优秀的工具,无人能及!
VIM也是我的最爱,rails.vim+project+svn 是个不错的选择
-
blackanger
发布于2007-09-07 13:13:25
-
好,试用一下。。。呵呵
-
blackanger
发布于2007-09-07 13:38:05
-
没找到注册码,试用一下吧。。。
-
martin
发布于2007-09-07 13:58:29
-
IntelliJ-IDEA-4.5 Crack.rar
(2007-09-07 13:58:29, Size: 31.6 KB, Downloads: 24)
这个虽然是4.5的,但是一样通用
从这里下载最新的IDEA RUBY PLUGIN :http://teamcity.jetbrains.com/vi ... ldId=lastSuccessful


