0

Rails 3.2.0 サイトのページネーションに Kaminari を使用しています。<% if !traveldeal.expired? %>期限切れがブール値である場所でフィルタリングすることにより、取引オブジェクトがビューに表示されないようにしています。

index アクションのコントローラーに示すように、ページごとに 9 つの traveldeals を表示します。

def index
  @traveldeals = Traveldeal.order('created_at DESC').page(params[:page]).per(9)
end

当初、ページネーションは 1 ページに 9 件の旅行情報が表示されていましたが、問題なく機能していました。ただし、最初のページの traveldeals を手動で期限切れに設定すると true になり、期限切れに設定された traveldeals は最初のページに表示されなくなりますが、空白のギャップがあり、2 ページ目の要素は上に移動しません。

他の唯一の関連情報は、ページネーションを表示するための次のスニペットがあることです。

<%= paginate @traveldeals %>

私の質問:

期限切れに設定されているため、2 ページ目の要素が 1 ページ目の要素を埋めるためにシフトアップするようにするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

1

kaminari はビューの条件を認識しないため、代わりにクエリ中に期限切れのアイテムを除外する必要があります。ブールexpired列があると仮定します:

@traveldeals = Traveldeal.where(:expired => false).order('created_at DESC').page(params[:page]).per(9)
于 2012-05-06T19:43:45.613 に答える