😊

🧠 ActiveRecord チートシート(Rails 6/7対応)

2025/04/06に公開

🧠 ActiveRecord チートシート(Rails 6/7対応)

🔹 モデル基本操作

User.all                   # 全件取得
User.find(1)              # IDで検索(なければ例外)
User.find_by(email: "a@b.com")  # 条件で1件
User.where(age: 20)       # 条件で複数
User.order(:name)         # 並び替え
User.limit(5)             # 件数制限
User.offset(10)           # オフセット
User.first                # 最初の1件
User.last                 # 最後の1件
User.count                # 件数取得
User.exists?(id: 1)       # 存在確認

user = User.new(name: "Taro")
user.save

User.create(name: "Jiro")     # new + save

user.update(age: 30)
user.destroy

🔹 レコードの作成・更新・削除

user = User.new(name: "Taro")
user.save

User.create(name: "Jiro")     # new + save

user.update(age: 30)
user.destroy

🔹 属性・カラム情報

User.attribute_names
User.column_names

User.columns.each do |col|
  puts "#{col.name}: #{col.type}"
end

🔹 アソシエーション

# モデル定義
class User < ApplicationRecord
  has_many :posts
end

class Post < ApplicationRecord
  belongs_to :user
end

# 使い方
user.posts
post.user

🔹 マイグレーション操作

rails generate model User name:string age:integer
rails db:migrate

🔹 JOIN・includes(N+1回避)

User.joins(:posts)  # 結合(INNER JOIN)

User.includes(:posts).each do |user|
  user.posts.each do |post|
    puts post.title
  end
end

Discussion