「Ruby/rails/dbモデル」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→検索) |
(→検索) |
||
行5: | 行5: | ||
ApplicationRecordを継承する | ApplicationRecordを継承する | ||
− | == | + | ==検索一件== |
− | + | user = User.find(1) # idが存在しない時はerrorが発生する(発生させないようにするにはwhere(id: 1)を使う | |
− | + | user = User.find_by(email: "test@example.com") | |
+ | users = User.where("email = ?", "test@example.com").first | ||
+ | ==検索複数== | ||
users = User.where("email = ?", "test@example.com") | users = User.where("email = ?", "test@example.com") | ||
users = User.where("email = :email", email: "test@example.com") # こちらの方が可読性が良い | users = User.where("email = :email", email: "test@example.com") # こちらの方が可読性が良い |
2017年11月8日 (水) 08:45時点における版
table本体クラス
例:user (app/models/user.rb)
class User < ApplicationRecord end
ApplicationRecordを継承する
検索一件
user = User.find(1) # idが存在しない時はerrorが発生する(発生させないようにするにはwhere(id: 1)を使う user = User.find_by(email: "test@example.com") users = User.where("email = ?", "test@example.com").first
検索複数
users = User.where("email = ?", "test@example.com") users = User.where("email = :email", email: "test@example.com") # こちらの方が可読性が良い
2つ条件をつけ検索
users = User.where("name = :name", name: "taro") .where(del_flag: false)
順序
users = User.order(:created_at)
件数
users = User.limit(5)
group by
users = User.select("date, sum(date)").group("date")
特定カラムのみ
users = User.select("name, created_at")
insert
user = User.new(name: "taro", email: "test@example.com") user.save
or
user = User.create(name: "taro", email: "test@example.com")
保存
user = User.find(1) user.name = "taro" user.save
削除
user = User.find(1) user.destroy