1
1

Rails学習中に出てくるActive Recordについて、自分なりに調べたことを簡単にまとめます。

Active Recordとは何か?

MVCのM、つまりモデルに関わる仕組み。ORMフレームワークとしてさまざまな機能を備えています。

ORM(オブジェクト/リレーショナルマッピング)

アプリケーションが持つオブジェクトを、リレーショナルデータベースのテーブルに接続すること。
Railsでは、これを取り入れることで、SQL文を直接書く代わりにアプリケーションにおけるオブジェクトの属性やリレーションシップをデータベースに保存することも、データベースから読み出すこともできるようになります。

主な機能

CRUD(データの読み書き)

controllerのアクションでよく見るコード、これにもActive recordが活用されています。
Create(データの作成)

user = User.new(name: "Michael Hartl", email: "mhartl@example.com")
user.save  
/*Userテーブルに、名前とメールアドレスを設定。その後、saveメソッドでテーブルにデータを保存している。*/

Read(データの読み込み)

users = User.all 
/*データベースからすべての値を取得*/
user = User.find(params[:id])
/*Railsのshowアクションやeditアクションなどで使用する記法。params[:id]でクライアントから送信されたURLやフォームで送信された情報をもとに、該当のIDのデータを取得している。*/

Update(データの更新)

user = User.find(params[:id])
user.update(name: "Foo Bar", email: "foobar@example.com")
/*取得したクライアントの情報を、updateメソッドで書き換えている。*/

Delete(データの削除)

user = User.find(params[:id])
user.destroy
/*取得したデータをdestroyメソッドで破棄している。*/

バリデーションの設定

 モデルにバリデーションを記述することで、テーブルに保存する際の様々なルールを作ることができます。

class User < ApplicationRecord
 validates :name, presence: true, length: { maximum: 50 }
end

例えば、このように書くと、nameカラムに値を保存する際には、入力必須(presence: true)、長さは50文字以内(length: { maximum: 50 })のように細かい指定が可能。

他にも、Acrive Recordには、コールバックやマイグレーションなどの機能もあります。

まとめ

・Active Recordを活用することで、簡単にモデルとのやり取りを行うことができる!

参考
https://railsguides.jp/active_record_basics.html
https://railstutorial.jp/
https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1