2017-10-07 6 views
1

2つのアイテムのコレクションがあるページがあります。私は雷にページ付けするためにそれらを一緒に結合する方法を知ってるカミナリは2つのコレクションを組み合わせて見出しを間に入れます

def index 
    @collection1 = Model.collection1 
    @collection2 = Model.collection2 
end 

は、しかし、私は@collection2開始(もしあれば)の項目の前に<h1>collection 2</h1>ヘッダを配置する必要があります。

ページでは、このようなものになるだろう:

..Item from collection 1.. 
..Item from collection 1.. 
..Item from collection 1.. 
<h1>collection 2</h1> 
..Item from collection 2.. 
..Item from collection 2.. 

Imはこれを行う方法を考え出す苦労して。何か案が?

答えて

0

私は以下の解決策を考え出しました。

def index 
    @collection1 = Model.collection1 
    @collection2 = Model.collection2 
    @collection1_paginated = @collection1.page(params[:page]) 
    @collection2_paginated = Kaminari.paginate_array(@collection1 + @collection2).page(params[:page]) 
    .padding(@collection1_paginated.size) 
    .take(@collection1_paginated.limit_value - @collection1_paginated.size) 
    @collection1_or_collection2 = Kaminari.paginate_array(@collection1 + @collection2).page(params[:page]) 
end 

そして、あなたが行うことができますビューで:

= render partial: 'model', collection: @collection1_paginated 
- display_collection_2_heading? 
    h1 collection 2 
= render partial: 'model', collection: @collection2_paginated 

= paginate @collection1_or_collection2 

には、以下のヘルパーを作成する見出しコレクション2を表示します。

def display_collection_2_heading? 
    @collection1.present? && ((@collection1.count/@collection1_paginated.limit_value)+1) == @collection1_paginated.current_page 
end 

このヘルパーはcollection1 @からの最後の項目の後に1時間のみを行く見出しを確認します。

関連する問題