ぱーりー on rails

たまごにひびすらわれてない

kaminariでページネーション

kaminariを使ったページネーションのやり方。

①gem 'kaminari'

をGemfileに追加する。

②$ bundle install

する。

③追加したいindex.html.erbなど部分に<%= page_entries_info @モデル名 %>

.

.<%= paginate @モデル名 %>

を追加する。

たとえば。

<%= page_entries_info @projects %>

<table class='table table-hover'>
<thead>
<tr>
<th>ID</th>
<th>発注者</th>
<th>カテゴリ</th>
<th>プロジェクト名</th>
<th>ステータス</th>
<th style='width: 200px;'></th>
</tr>
</thead>
<tbody>
<% @projects.each do |project| %>
<tr>
<td><%= project.id %></td>
<td><%= link_to project.user_name, admin_user_path(project.user_id), target: '_blank' %></td>
<td><%= project.category_name %></td>
<td><%= project.name %></td>
<td><%= project.status_i18n %></td>
<td>
<%= link_to '詳細', [:admin, project], class: 'btn btn-default' %>
<%= link_to '編集', edit_admin_project_path(project), class: 'btn btn-primary' %>
<%= link_to '削除', [:admin, project], method: :delete,
data: { confirm: 'こちらのプロジェクトを削除しますか?' }, class: 'btn btn-danger' %>
</td>
</tr>
<% end %>
</tbody>
</table>

<%= paginate @projects %>

このような感じです。

④コントローラー編集

def index

  @projects = Project.page(params[:page])

end

のようにする。

⑤$ rails g kaminari:config

とするとkaminari の設定ファイルを編集することができ、

デフォルトではコメントアウトされて作成されているので

自分のしたいように編集してください。

Kaminari.configure do |config|
config.default_per_page = 30
config.max_per_page = nil
# config.window = 4
# config.outer_window = 0
# config.left = 0
# config.right = 0
# config.page_method_name = :page
# config.param_name = :page
end

私はめんどいからこの二つだけw

⑥config/locales/ja.yml 編集

これはどっちでも良いと思います。

英語のままの「next」といかの表記でいい人はほっといて

日本に「次ページ」とかにしたい方は、

views:
pagination:
first: 先頭
last: 最終
previous: 前ページ
next: 次ページ
truncate: "..."

をついかすれば完成!!!♪

で、もしこの作業をgit をつかってしていて

ブランチを切り替えて違う作業をしてもどってきたら

no method error 'page'

みたいなのがでるかもしれないですが

その場合bundle install したら元に戻りました。

原因はわからないですが、gemをつかってるから

bundle installしたらいいのかなとおもってやってみたらなおりました

この本質的な理由もし教えてくださる方がいらっしゃったら

コメントいただけたらうれしいです。