#allメソッド
モデルの全件のレコードを返します。
Post.all
#SQL
SELECT "posts".* FROM "posts"
#findメソッド
主キー(id)を指定して、見つかった1レコードを返します。
Post.find(1)
#id: 1のレコードを返す
# SQL
SELECT "posts".* FROM "posts"
WHERE "posts"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
#find_byメソッド
主キー(id)以外のカラムを指定しても、見つかった1レコードを返します。
Post.find_by(title: "closet")
#titleが"closet"のレコードを返す
#SQL
SELECT "posts".* FROM "posts"
WHERE "posts"."title" = ? LIMIT ? [["title", "closet"], ["LIMIT", 1]]
#whereメソッド
Post.where(title: "closet")
#titleが"closet"のレコードを全て返す
#SQL
SELECT "posts".* FROM "posts"
WHERE "posts"."title" = ? LIMIT ? [["title", "closet"], ["LIMIT", 11]]
#find_or_create_by
User.find_or_create_by(email: 'hoge@example.com')
#'User'の中から'email'が'hoge@example.com'のレコードが無かったら作成してくれます。
#SQL
SELECT * FROM users WHERE (users.email = 'hoge@example.com') LIMIT 1
BEGIN
INSERT INTO users (created_at, email, locked, orders_count, updated_at)
VALUES ('2021-04-01 05:55:55', 'hoge@example.com', 1, NULL, '2021-04-01 05:55:55')
COMMIT
#takeメソッド
Post.take(10)
#10件データ取って来て返す
#ただし、レコードの指定ができない
#SQL
SELECT * FROM "posts" LIMIT 10
#firstメソッド
Post.first
#主キー順の最初のレコードを取ってくる
#SQL
ELECT * FROM posts ORDER BY posts.id ASC LIMIT 1
#lastメソッド
Post.last
#主キー順の最後のレコードを取ってくる
#SQL
SELECT * FROM posts ORDER BY posts.id DESC LIMIT 1
#参考
Railsガイド6.1