0

ページネーションに使用kaminariしています。User次に、 、 、などの 3 つのモデルがCommunityありUniquecodeます。

表示されるレコードの数が各 params[:page] で異なる (変化する) という問題に直面しています。

また、 を入れる<% @uniquecode_count %>と '1' が返ってきますが・・・関連するレコードが 3 つあるので '3' である必要があります。

これは本当に奇妙です。私の場合。関連する 3 つの Uniquecode レコードがあります。私がUniquecode モデルに
入れたように、各ページに 1 つのレコードのみを表示する必要があります。paginates_per 1ただし結果は

  • ページで。1 3件のレコードを表示
  • ページで。2 2 つのレコードを表示します
  • ページで。3 1件のレコードを表示

なぜこれを行うのですか?カミナリがこんなことをしているのを見たことがない。

誰でもこれを解決するのを手伝ってもらえますか?

このように関連付けを定義しました

User has_many :communities
User has_many :uniquecodes

Community belongs_to :user
Community has_many :uniquecodes

Uniquecode belongs_to :user
Uniquecode belongs_to :community

ユニークコードモデル

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.
4

2 に答える 2

1

ユニークコードのデフォルトの順序を設定する必要があるかもしれません..?

于 2013-01-24T21:07:01.797 に答える
1

交換

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

@uniquecodes = Kaminari.paginate_array(@user.uniquecodes).page(params[:page])
于 2013-01-24T21:18:19.843 に答える