😊
🧠 ActiveRecord チートシート(Rails 6/7対応)
🧠 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