このエントリーをはてなブックマークに追加

2016年12月25日日曜日

はじめの一歩 -Rails ActiveRecord編- 序章


どうも、はじめです。

前回はおまけとしてapplication.rbでのタイムゾーンの設定の仕方を紹介しました 。
「はじめの一歩 -Rails 時間・タイムゾーン編- おまけ」
今回から「ActiveRecord編」に入っていこうと思います。


ActiveRecordとは


「Ruby on Rails」にて用意されているORMになります。
AcriveRecordを使用することでSQLを記述しなくても
わずかなアクセスコードでBDへのデータの保存や取得を行うことができます。


AcriveRecordのルール


AcriveRecordを使用する上でのルールとして以下の命名規則があります。
・モデル名、クラス名には単数形のキャメルケース(語頭を大文字)を使用する
・テーブル名、カラム名には複数形で語の区切り文字として「_(アンダーバー)」を使用する。
・テーブルの外部キーは「テーブルの単数形_id」とする。
・主キーには「id」を使用する。

例としてユーザーテーブルとユーザー投稿テーブルを使用する際には以下のようになります。
usersテーブル           -> Userモデル
user_postsテーブル -> UserPostモデル
という形でテーブル名、モデル名が決まります。

両テーブルの主キーは「id」
user_postsテーブルが持つ外部キーは「user_id」となります。

他にも幾つか用意されているカラム名が存在しています。
 ・created_at - レコード作成時の日時が自動的に登録されます。
 ・updated_at - レコードが更新された時の日時が自動的に登録されます。
 ・lock_version - モデルにoptimistic lockingを追加します。
 ・type - モデルでSingle Table Inheritanceを使用する場合に指定します
 ・関連付け名_type - ポリモーフィック関連付けの種類を保持します。
 ・テーブル名_count - 関連付けにおいて、所属しているオブジェクトの数をキャッシュするのに使用されます。


ActiveRecordのモデルを作成


例としてUserモデルの作成を行います。
# app/models/user.rb
class User < ActiveRecord::Base
end

AcriveRecordの命名規則に反した名前になってしまった場合
以下のようにオーバーライドすることも可能です。
# app/models/user.rb
class User < ActiveRecord::Base
    self.table_name = ‘USER’
end
主キーとなるカラム名が「id」以外の場合は以下のように指定をすることも可能です。
# app/models/user.rb
class User < ActiveRecord::Base
    self.primary_key = ‘user_id'
end

このようにテーブルに対して紐づくモデルの作成が完了すれば
テーブルからのデータの呼び出し、登録等の操作が可能になります。


次回


モデルの作成が完了したので、次回は登録系について書いていこうと思います。

0 件のコメント:

コメントを投稿