Just do IT

思うは招く

kaminariでページネーションを追加するときのコントローラー、ビューそれぞれの実装

@booksのページネーションを取得したい場合。

コントローラー側

app/controllers/books_controller.rb

  def index
    @books = current_user.books.order(:id).page(params[:page])
  end

.page(params[:page])でページネーションに必要な情報を取得。

ビュー側

# これを記述
<div class="pagination">
  <%= paginate @books %>
  <%= page_entries_info @books %>
</div>

<table>
  <thead>
    <tr>
      <th><%= Book.human_attribute_name(:title) %></th>
      <th><%= Book.human_attribute_name(:memo) %></th>
      <th><%= Book.human_attribute_name(:author) %></th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @books.each do |book| %>
      <tr>
        <td><%= book.title %></td>
        <td><%= book.memo %></td>
        <td><%= book.author %></td>
        <td><%= link_to t("link.show"), book %></td>
        <td><%= link_to t("link.edit"), edit_book_path(book) %></td>
        <td><%= link_to t("link.destroy"), book, method: :delete, data: { confirm: t("confirm.are_you_sure") } %></td>
      </tr>
    <% end %>
  </tbody>
</table>