バージョン
・ruby 2.5.7
・Rails 5.2.4.3
ページネーション機能を使って1ページにつき10件だけ表示させたい
まずgemをインストール
ページネーション機能の実装には、gemの「kaminari」を使います。
まず、gemfileでkaminariを記述する。
Gemfile
gem 'kaminari'
Gemfileに追記できたら、ターミナルでbundle installを実行して、kaminariをインストールします。
terminal
bundle install
さらに以下のコマンドを実行
kaminariの設定ファイルを作成の為、下記を実行します。このファイル内にある数字を動かせれば1ページにつき、何件表示出来るか設定出来ます。
terminal
rails g kaiminari:config
下記を実行して生成されるものはkaminariのデザインの修正ができます。
詳しくはこちらの記事が分かりやすかったです。
https://qiita.com/you8/items/df68aaee3010e282d1ae
terminal
rails g kaiminari:default
viewとcontrollerをページネーション用に変更
kaminariを利用するには、利用したいviewファイルに以下のように追記します。
user/index.html.erb
<% @users.each do |user| %>
:
:
<% end %>
<%= paginate @users %>
controllerの方もallで取得していたのを以下のように修正します。
reverse_orderを指定すると新しい順に表示されるようになります。
users_controler.rb
def index
#@users = User.all
@users = User.page(params[:page]).reverse_order
end
config/initializersフォルダのkaminari_config.rbに何件表示させたいか記入すれば完成!!
config/initializers/kaminari_config.rb
Kaminari.configure do |config|
config.default_per_page = 10
end