見出し画像

Rails Active Recordとは.

Active Recordとは.

・MVCで言うところのモデルに相当するもの.

・データベースに恒久的に保存される必要のあるオブジェクトの作成と利用を行える.

ActiveRecordの機能としての特徴.

・モデルおよびモデル内のデータを表現する
・モデル同士の関連付け(アソシエーション)を表現する
・関連付けられているモデル間の継承階層を表現する
・データをデータベースで永続化する前にバリデーション(検証)を行なう
・データベースをオブジェクト指向スタイルで操作する
引用:Railsガイド

ActiveRecordの命名ルール.

・モデルのクラス名:PostComment:単数形、頭文字を大文字.

・データベースのテーブル名:post_comments:複数形、語はアンダースコアで区切られる.

ActiveRecordのテーブルで使うカラム名.

データベースのテーブルで使うカラム名も利用目的に応じたルールがある.

・主キー:デフォルトは id という名の integer カラムが主キーで使われる.
・created_at:レコード作成時に現在の日付時刻が自動的に設定される.
・updated_at:レコード作成時や更新時に現在の日付時刻が自動的に設定される.
・外部キー:テーブル名の単数形_id にする必要がある.(post_id、comment_id)

ActiveRecordのモデルの作成.

class Post < ApplicationRecord
end

上記のようにモデルを作成することで…

Postモデルを作成し、データベースのpostテーブルにマッピングされる.
以下のようなコードが使用可能になる.

p = Post.new
p.name = "New Post"
puts p.name # "New Post"

マイグレーション.

Railsにはデータベーススキーマを管理するためのDSL(ドメイン固有言語: Domain Specific Language)があり、マイグレーション(migration)と呼ばれています.
引用: Railsガイド

以下のようにマイグレーションファイルを作成し、実際にテーブルを作成する際は.
$ rails db:migrate を実行する.

class CreateComments < ActiveRecord::Migration[5.0]
 def change
   create_table :Commnets do |t|
     t.string :title
     t.text :description
     t.references :post, foreign_key: true
     
     t.timestamps
   end
 end
end

※上記のマイグレーションコードは特定のデータベースに依存しない.
MySQL、PostgreSQLなどさまざまなデータベースに対して実行可能である.

 

この記事が参加している募集

スキしてみて

この記事が気に入ったらサポートをしてみませんか?