facebook twitter hatena line email

「Ruby/rails/dbモデル」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(検索一件)
(削除)
行47: 行47:
 
  user = User.find(1)
 
  user = User.find(1)
 
  user.destroy
 
  user.destroy
 +
 +
==dao的記述==
 +
class User < ApplicationRecord
 +
  def find_by_id(id)
 +
    return where(id: id).first
 +
  end
 +
end

2017年11月9日 (木) 04:44時点における版

table本体クラス

例:user (app/models/user.rb)

class User < ApplicationRecord
end

ApplicationRecordを継承する

全て

user = User.all

検索一件

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

dao的記述

class User < ApplicationRecord
  def find_by_id(id)
    return where(id: id).first
  end
end