web-dev-qa-db-ja.com

Rails 4ページ付け、will_paginate対kaminariをbootstrap3で使用

Kaminariがこの記事を読んでRails3でうまく機能することを理解しています: Rails 3のページ付け、will_paginateとKaminari ですが、Rails4ではどうでしょうか。また、Bootstrap3でそれらをスタイリングする場合、どのgemがより簡単な解決策ですか?

16
tkymtk

私の経験では、KaminariWill Paginateの間にほとんど違いはありません。これは主に、どちらを使用するかについての個人的な選択です(Paperclip/CarrierwaveMac / Windows

互換性の観点から、両方のgemはRails 4でネイティブに動作します


ブートストラップ

Bootstrapに関して、あなたは間違った質問をしていると思います

ブートストラップは CSSフレームワーク であり、アプリのバックエンド機能とは関係ありません。

結論としては、コントローラーからページネーションメソッドを呼び出す必要があるため、システムの違いは表面的なものにすぎません。 Bootstrapを使用してそれらをスタイル化する場合は、どちらのgemでも同じことを行う必要があります

だから選択はあなた次第です!

22
Richard Peck

Twitter bootstrap Kaminariによるページ付けを実装するのは非常に簡単です。以下の手順に従ってください。

  1. gem 'kaminari'GemFileに追加します。 bundle installを実行し、Railsサーバーを再起動します
  2. カミナリーテーマ を確認してください-あなたの場合はbootstrap3テーマが必要です
  3. Rails g kaminari:views bootstrap3を実行します

それでおしまい。

7
gotqn

KaminariはRails 4.1.5

生成されたBootstrapテーマの カミナリ のコードを1行変更することで、Bootstrap 3で動作させることができます。

InViews/Kaminari/_paginator.html.erb

この行を変更します:<div class="pagination"><ul>

これに:<ul class="pagination pagination-lg">

..そしてdivを取り除きます。上記のulを使用するだけです-私にとっては問題なく動作します。


パーシャル全体のコードは次のとおりです。

  <%= paginator.render do %>
  <ul class="pagination pagination-lg">
    <%= first_page_tag unless current_page.first? %>
    <%= prev_page_tag unless current_page.first? %>
    <% each_page do |page| %>
      <% if page.left_outer? || page.right_outer? || page.inside_window? %>
        <%= page_tag page %>
      <% elsif !page.was_truncated? %>
        <%= gap_tag %>
      <% end %>
    <% end %>
    <%= next_page_tag unless current_page.last? %>
    <%= last_page_tag unless current_page.last? %>
  </ul>
<% end %>
2
Jordan