7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】will_paginate導入方法とつまづきがちな点(Railsチュートリアルと比較して)

Posted at

#はじめに
Railsチュートリアル通り進めると色々なつまづきポイントがあるなと思ったので記事にします。

#will_paginate導入方法(Railsチュートリアル)
Railsチュートリアルでの導入方法は基本的に下記のとおりです。
####①必要なgemをインストール

gem 'will_paginate',           '3.1.6'
gem 'bootstrap-will_paginate', '1.0.0'

####②ページネーションしたいビューに記載

<%= will_paginate %>

<ul class="users">
  <%= render @users %>
</ul>

<%= will_paginate %>

####③コントローラーに記載

def index
    @users = User.paginate(page: params[:page])
end

上記一連のやり方では、僕の環境下ではなにかとうまくいかなかったです。
・Ruby 2.7.0
・Rails 6.0.2.1
・bootstrap 4.4.1

うまくいくための対応を下記します。

#ポイント1 will_paginateは'3.1.7'を使用
'3.1.6'ではエラーが発生してしまいうまくいきませんでした。

エラー文
ArgumentError: wrong number of arguments (given 0, expected 1)

bundle update will_paginateを行い、'3.1.7'へのアップデートで解決しました。
GitHub(will_paginate)に今回と同じエラー文の記載がありました。
Railsのバージョン(5.2.2.1 and 6.0.0.beta2+)によってはコンフリクトするエラーがあったようです。

#ポイント2 will_paginate-bootstrap4を入れる
ページネーションのボタンの表示には成功しましたが、
bootstrapのデザインが適用されませんでした。
これもGitHub(
will_paginate-bootstrap4)
に答えがありました。
Bootstrap4にマッチするgemが別にあるようです。
README.md記載の通りにインストールし、ビューに下記のように記載して解決。

= will_paginate(@users, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)

#その他 ちょっとした注意点
###①slimで記載するときはインデントに注意
とても基本的ですが、僕はこれでちょっとつまづきました。

ダメな例
  = will_paginate(@users, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)
    .row.users
      = render @users
  = will_paginate(@users, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)
OKな例
  = will_paginate(@users, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)
  .row.users
    = render @users
  = will_paginate(@users, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)

###②サーバーの再起動を忘れずに
これはRailsチュートリアルにも書いてありますね。

#まとめ
僕と同じつまづきをした方の参考になりましたら幸いです。
バージョンが違えば挙動も異なる。
今回を機に、GitHubを確認する習慣をつけようと思います。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?