質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

450閲覧

will_paginageでページ当たりの開始番号と終了番号を表示したい

pecchan

総合スコア592

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/17 22:02

編集2021/02/17 22:42

初歩的な質問で恐縮です。
rails (6.1.0)
will_paginate (3.3.0)

前提・実現したいこと

will_paginate を使って、検索結果でよく見る「ページ当たりの開始番号と終了番号」を表示したいです。

例えば
1ページ目だったら、「1-20件表示」
2ページ目だったら、「21-40件表示」
3ページ目だったら、「41-60件表示」
と出力したいのです。

githubにあるwill_paginateのドキュメントなど見ましたが参考情報を見つけられませんでした。
github
will_paginate documentation

該当のソースコード

コントローラでは、per_pageにて20件ずつの指定にしてます。

ruby

1def index 2 @search_params = search_params 3 @items = Item.paginate(page: params[:page], per_page: 20).search(search_params) 4end

分からないのは、ビュー側です。

検索の仕方が悪いのかググっても古い情報しか見つけることが出来ませんでした。

以前はここのようにすると取得できたとありましたが、現在では「undefined method `first_item' 」のエラーになります。

ruby

1 2<%= @items.current_page.first_item %> - <%= @items.current_page.last_item %>件表示

will_paginageを使った場合、ビューでは通常どのように書くのでしょうか?

先輩方教えて下さい。
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/17 22:37

>githubにあるwill_paginateのドキュメント URLと「確認した項目」を提示してください。
pecchan

2021/02/17 22:40

失礼しました。追記致します。
guest

回答1

0

ベストアンサー

https://github.com/mislav/will_paginate/blob/8113fddf4b506867e9af3aa59fe2df314b79860c/lib/will_paginate/page_number.rb
メソッド見当たりませんね...

pagenationにはwill_pagenate以外にも
kaminari
pagy
があり(最近はpagyがいいとか言われてる)
そのgemに依存するのではなく、どのgemに切り替えても実装できるように自分で計算するのがいいと思いました

first_item = @items.per_page * (@items.current_page - 1) + 1 "#{first_item} - #{first_item + @items.size}件表示"

投稿2021/02/18 08:10

編集2021/02/18 08:11
kyohah

総合スコア96

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2021/02/18 21:16

丁寧な解説有難う御座います。 pagyは初めて知りました。比較的最近まで更新されてますね。 >そのgemに依存するのではなく、どのgemに切り替えても実装できるように>自分で計算するのがいいと思いました なるほど!仰るとおりですね! たいへん参考になりました。有難う御座います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問