0
0

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 1 year has passed since last update.

Rails 取得するレコード数の上限を指定 limit/offset

Last updated at Posted at 2022-02-02

開発で調べたことをまとめました!

概要

ページネーションを実装するためAPI側で、必要な分のレコードを取得して返す。
フロント側からパラメータで、取得レコード数(limit)や、何ページ目(offset)を設定する。

使い方

モデル.limit(最大取得行数).offset(取得開始位置)

例) usersテーブルから1~5件目、最大5件を取得
User.limit(5)
# SELECT * FROM users LIMIT 5

例) usersテーブルから6~10件目、最大5件を取得
User.limit(5).offset(5)
# SELECT * FROM users LIMIT 5 OFFSET 5

例) limit/offsetパラメータがnilの場合、User.allと同じ
User.limit(nil).offset(nil)
# SELECT * FROM users

受け取るパラメータがなかった場合にエラーが出たため、&.(ぼっち演算子)を使う
→nilを返す

limit_params = params[:limit]&.to_i
offset_params = params[:offset]&.to_i

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?