Active Recordってなんぞや?
初めに
学生が終わるまで残り1ヶ月も無いと言うことで、友達と旅行や遊びに行っててなかなか記事の更新ができませんでした、、、笑
今回は、Railsには欠かせないActive Recordについて記事にしていきたいと思います。
Active Recordとは
Railsは、MVCモデルを採用されており、Active Recordは、Mの(モデル)の部分に該当しています。そして、ORM(Object-Relational Mapping)というシステムで記述されており、データベースのテーブルとRailsのモデルを関連つけてくれるとても便利なものなのです。
ORMとNoORMを比較
ORMで記述すると、直接データベース操作をする必要がございます。
例として、一般的なユーザーの情報を取得してみます。
users = Array.new
sql = "SELECT * FROM users"
rows = some_sql_module.query(sql); # `some_sql_module`は簡略化された例
rows.each do |row|
user = User.new;
user.id = row[:id] # シンボルがカラム名として使用されると仮定
user.name = row[:name]
user.email = row[:email]
users << user
end
こちらは、ORM無しでデータベース操作をしたものとなります。
ORM無しで記述すると、
users = User.all
こちらは、上記のRubyで記述した内容と同じでございます。
RailsのActive Recordを扱いモデルに対してall
メソッドを扱うと、このようにとてもシンプルにユーザーの情報が取得できます。
しかし、特殊な記述や最適化などが必要な場合は、直接SQLを記述する必要があります。
Active RecordでCRUD処理
基本的なActive Recordの操作について解説して行きます。
作成(Create)
createは、新たなレコードをデータベースに挿入すること
user = User.new(name: "Taro")
user.save
読み取り(Read)
Readは、データベースからデータを取得すること
users = User.where(age: "20..40")
更新(Update)
Updateは、データベース内の既存データを更新(変更)すること
user = User.find(3)
user.update(name: "Taro")
削除(Delete)
Deleteは、データベースにあるレコードを削除すること
user = User.find(3)
user.destroy
Active Recordを扱うことで、Rubyのコードで、データベースとのやり取りがシンプルになります。
まとめ
Active Recordについて触れました。
今回は、基本的な部分しか触れておりません。実務ではもっと深ぼった内容になりますので、もっと勉強する必要があります。
Discussion