Paginator显示出奇怪的结果。为什么?

时间:2013-01-24 21:03:43

标签: ruby-on-rails ruby-on-rails-3 kaminari

我正在使用kaminari进行分页。 然后我有3个模型,例如UserCommunityUniquecode

我正面临这个问题,其中显示的记录数量在每个参数[:page]中变化(变化)。

另外,如果我放<% @uniquecode_count %>,它会返回'1'...... 由于有3个相关记录,但它必须是'3'。

这真的很奇怪。就我而言。我有3个Uniquecode记录。
正如我将paginates_per 1放在Uniquecode模型中一样,它应该在每个页面上只显示1条记录。但结果是

  • 在Page。 1它显示3条记录
  • 在Page。 2它显示2条记录
  • 在Page。 3它显示1条记录

为什么这样做?我从未见过Kaminari这样做。

任何人都可以帮我解决这个问题吗?

我定义了像这样的关联

User has_many :communities
User has_many :uniquecodes

Community belongs_to :user
Community has_many :uniquecodes

Uniquecode belongs_to :user
Uniquecode belongs_to :community

uniquecode模型

paginates_per 1

控制器

@user = User.find(params[:id])
@uniquecodes = @user.uniquecodes.page(params[:page])
@uniquecodes_count = @uniquecodes.count

查看

<%= paginate @uniquecodes, :window => 4 %>
<% @uniquecodes.recent.each do |uniquecode| %>   
    <%= render 'uniquecodes/uniquecode', :uniquecode => uniquecode %>
<% end %>

<% @uniquecode_count %>  => this shows '1'. It has to show '3' though.

2 个答案:

答案 0 :(得分:1)

也许您应该为您的唯一代码设置默认顺序..?

答案 1 :(得分:1)

替换

@uniquecodes = @user.uniquecodes.page(params[:page])

通过

@uniquecodes = Kaminari.paginate_array(@user.uniquecodes).page(params[:page])