##ActiveRecordとは
人間で言う「脳みそ」のようなものです。勉強し始めた頃、私はこのように覚えました(笑)データベースへ指示を送るメソッドの総称のことをいい、一つ一つのコードはコントローラーへ記述します。少し難しく言うと、ruby on railsでよく使われるORMの1つです。ORM(Object Relational Mapping)とはオブジェクト指向の言語でオブジェクトとして使うために変換してくれるものです。ActiveRecordのメソッドを使うことで、データベースのレコードからデータを取り出してくれたり、レコードへ新しいデータを追加することができます。よく使うActiveRecordのメソッドの種類と書き方をまとめてみました。
間違いやもっと良い書き方があれば、教えてください!
##種類と書き方
今回は「title」と言う名前のモデルがあるとして、コードの書き方を説明します。
all 全てのデータを受け取る
Title.all
find ある1つのデータを受け取る
Title.find(取得したいテーブルの数字)
ex) Title.find(3)
#Titleモデルのtitlesテーブルの3番目の値を受け取る
new インスタンスを生成する
Title.new
save インスタンスを保存する
Title.save
order 並び順には2種類あり、それらを使って並び順を変更する
asc→小さいものから大きいもの、古いものから新しいもの(昇順)
desc→上の逆の並び(降順)
Title.order("カラム名 並び順")
ex) Title.order("name ASC")
#nameカラムを古いものから並べて、受け取る
where 条件に一致したテーブルを_配列_で受け取る
Title.where('カラムを含ませた条件式')
ex) Title.where('name > 5')
#5より大きいnameカラムを受け取る
Title.where('id: 1')
#idが1のテーブルを受け取る
create テーブルにレコードを保存する
Title.create(カラム名: 保存する値)
ex) Title.create(name: params[:first])
#nameカラムにfirstと送られてきたparamsを保存する
includes 関連するモデルを一度にまとめて受け取ることができる
allと似ているがallで受け取る場合、アソシエーションがある時に受け取る回数が多くなってしまい、N+1問題が発生する。その時にincludesを使うことで一度のアクセスだけで多くのデータを受け取ることができるためN+1問題を解決してくれる。
Title.includes(:モデル名)
ex) Title.includes(:name)
#nameモデルが関連するモデル情報をまとめて受け取る
以上で紹介を終わります。一覧はこちらです。ぜひ参考にしてみてください!
rails ガイド