论坛首页 Ruby版 rails

will_paginate的一个问题

浏览 538 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (1)
作者 正文
时间:2008-05-25
will_paginate起初觉得很好使用,但是现在才测试出来有一个问题,不知道问题出现在那里了
我的controller里面代码是这样的:
@loit_infos=LoitInfo.paginate_all_by_dbname dbname, :page =>params[:page],
:per_page =>3
或者这样写:
@loit_infos=LoitInfo.paginate :page =>params[:page],
:per_page =>3,:conditions => "dbname='#{dbname}'"

view里面是这样写的:
<%= will_paginate @loit_infos ,:prev_label => '« 上一页',
:next_label => '下一页 »'%>

问题在于:分页效果是有的,但是当点击到第二个页面的时候里面为空,不知道原因错在那里,用同一个类LoitInfo
也用了conditions,在另一个页面都不会出现这个问题,这个view里面除了首页以外的后面页都取不出来,都变成
空的,很奇怪的一个问题,调试的时候发现是在点击后面的页时输出的@loit_infos就已经为空了,实在搞不明白问题出
在那里了?有谁碰过这样的问题没?试过很多方法都没辙
   
时间:2008-05-25
希望对will_paginate这个插件使用经验较多的兄弟们能给个建议,是不是这本身就是will_paginate的一个隐藏的bug,因为这个conditions其他场合的应用也是正常的,而这里就出现了这个问题,不确定是插件本身的问题还是我写的有问题,请大家帮忙分析一下!
   
0 请登录后投票
时间:2008-05-29
能否把整个action贴出来看看,这些信息看不出什么问题
   
0 请登录后投票
时间:2008-08-07
jiachengxi38 写道
will_paginate起初觉得很好使用,但是现在才测试出来有一个问题,不知道问题出现在那里了
我的controller里面代码是这样的:
@loit_infos=LoitInfo.paginate_all_by_dbname dbname, :page =>params[:page],
:per_page =>3
或者这样写:
@loit_infos=LoitInfo.paginate :page =>params[:page],
:per_page =>3,:conditions => "dbname='#{dbname}'"

view里面是这样写的:
<%= will_paginate @loit_infos ,:prev_label => '« 上一页',
:next_label => '下一页 »'%>

问题在于:分页效果是有的,但是当点击到第二个页面的时候里面为空,不知道原因错在那里,用同一个类LoitInfo
也用了conditions,在另一个页面都不会出现这个问题,这个view里面除了首页以外的后面页都取不出来,都变成
空的,很奇怪的一个问题,调试的时候发现是在点击后面的页时输出的@loit_infos就已经为空了,实在搞不明白问题出
在那里了?有谁碰过这样的问题没?试过很多方法都没辙



我也是遇到同样的问题。折腾了我好几天,到现在还是没有搞定。用condtions 很诡异,有时可以有时不行:
@username下一页为空?要不就是数据库的信息,而不是你查询的结果。


我折腾了两天了?怎么回事阿?
@username = User.paginate(:all,
:page => params[:page], :per_page=>3,
:conditions => ["name like ?", "%#{params[:q]}%"])

显示页面里面:
<%= will_paginate @username %>

为什么我点击下页,就是空白阿?
或者是下页就是表里的全部数据,而不是我查询的数据?
   
0 请登录后投票
时间:2008-08-08
生成的 a 标签没有包含 conditions。把生成的 a 标签的 html 代码贴上来
   
0 请登录后投票
时间:2008-08-08
怎么实现第一页和最后一页了?
   
0 请登录后投票
时间:2008-08-08
jiachengxi38 写道
will_paginate起初觉得很好使用,但是现在才测试出来有一个问题,不知道问题出现在那里了
我的controller里面代码是这样的:
@loit_infos=LoitInfo.paginate_all_by_dbname dbname, :page =>params[:page],
:per_page =>3
或者这样写:
@loit_infos=LoitInfo.paginate :page =>params[:page],
:per_page =>3,:conditions => "dbname='#{dbname}'"

view里面是这样写的:
<%= will_paginate @loit_infos ,:prev_label => '« 上一页',
:next_label => '下一页 »'%>

问题在于:分页效果是有的,但是当点击到第二个页面的时候里面为空,不知道原因错在那里,用同一个类LoitInfo
也用了conditions,在另一个页面都不会出现这个问题,这个view里面除了首页以外的后面页都取不出来,都变成
空的,很奇怪的一个问题,调试的时候发现是在点击后面的页时输出的@loit_infos就已经为空了,实在搞不明白问题出
在那里了?有谁碰过这样的问题没?试过很多方法都没辙


我找到答案了,你在页面上少传了查询条件的参数,所以导致出现了下页数据为空或者显示全部数据. (by qichunren)
别忘了你的查询条件参数要加到 pagination link 里。
<%= will_paginate @username, :params => {:q => params[:q]} %> (by rainux )
我的现在工作了,不会有上面的问题了。
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
JavaEye推荐