2017-05-18 8 views
0

私はページネーションにカミナリの宝石を使用しています。問題は、4つの要素の後の最初のページと、25の要素の後のすべてのページにページを設定する必要があることです。私の問題を解決するためにカミナリを構成することは可能ですか?あなたは/前のページに転送するために関連するすべてのコードを残すことができ、すべてのカミナリを正しくセットアップするには

.pagination 
    .pagination__back 
    - if params[:page] && params[:page].to_i > 1 
     = link_to "Previous news", news_items_path(page: params[:page].to_i - 1) 
    - else 
     = "" 
    .pagination__forward 
    - if params[:page] 
     = link_to "Next news", news_items_path(page: params[:page].to_i + 1) 
    - else 
     = link_to "Next news", news_items_path(page: 2) 

答えて

1

まず: はここでの使用です。 Kaminariはすでにヘルパーでこれを解決しています。 ?これは、HTML5タグで囲まれたいくつかのページ= Nのページネーションリンクをレンダリングします

= paginate @your_resource 

:そのことについては は、あなたのビュー内、次のコードを使用します。 (Source

ページ区切りのリソースを持っているために、あなたはあなたのコントローラに以下のコードを追加したい:

@your_resource = YourResource.order(:foobar).page(params[:page]) 
# params[:page] will get added to each "paginated" request by Kaminari 
# if you use its previously mentioned helper method. 

は今、あなたは、動的な制限をしたいです。

def index 
    @your_resource = YourResource.order(:foobar).page(params[:page]).per(dynamic_limit(params[:page])) 
end 

private 
def dynamic_limit(current_page = 1) 
    if current_page == 1 
    return 4 
    else 
    return 25 
    end 
end 

この道を25

、あなたは現在のページをチェックし、それは最初のページの場合、それはそれ以外の場合は4に結果を制限します:そのことについて私はこのような何かを追加することをお勧め
関連する問題