2011-12-04 38 views
0

我有一个用户模型和图像模型,并has_many关系。 我在图像表中有18条记录。现在的事情是:为什么这个分页计数器总是显示总记录数?

@images = @user.images.paginate(:page => params[:page],:per_page=> 12) 
p @images.count //output is always 18 

的张数为18,总

第一页是18则第二页再次18.为什么会这样呢?第一页应该是12,然后是第二页6。

PS:它只显示12和6条记录,但计数器不正确。我只想获取该页面上的记录数量。基本上最后一页(考虑命令由DESC)柜台我从1-12变化,我对该柜台感兴趣。

+0

我怀疑你可能对'belongs_to的定义的'counter_cache':user'被缓存此计数。没有确切的想法,但。 –

回答

1

长度返回什么?计数将达到分贝,

logger.debug @images.length 

试试这个呢?我认为这将更好地工作与PAGINATE

@images = Image.where(:user_id => @user_id).paginate(:page => params[:page],:per_page=> 12) 
+0

酷..工作..我现在得到的东西...得知与will_paginate插件代码的区别.. –

+0

Btwn计数不会击中数据库的原因Image.count将击中分贝。请证实。 –

+0

尝试它在轨道控制台,我95%肯定它会击中数据库的轨道控制台User.last.images.count =>选择计数(*)从“图像”在哪里“图像”。“”u​​ser_id“= xxxx' – house9