Active Recordとは
Active RecordとはMVCフレームワークにおけるM、モデルに当たる部分で、データとロジックを表します。データベースに保存されたデータは削除しない限りは永続的に保存されます。
ORMフレームワークとしてのActive Record
ORM=オブジェクト・リレーショナル・マッピングとはアプリケーションがもつオブジェクトをMySQLなどのリレーショナルデータベースのテーブルに繋げることが出来ます。これによってMySQLなどでSQL文を直接記述する必要がなくなり、Rubyでアクセスコードを書くだけでアプリケーションのオブジェクトをデーターベースに保存したり、読み出すことが出来るようになります。またActive Recordの役割として以下のような点もあります。
・モデル同士の関連付け
・関連付けられているモデル間の継承階層を表現
・データをデータベースで保存する前にRailsモデルファイル内でバリデーションを実行
Active Recordの命名規則
Railsのモデル名は単数形でUser、Newsのように表現するルールですが、テーブル名はusersやpostsなど複数形で名前を作るルールになっている。また語が複数の単語から成り立つ場合、user_advicesのようにアンダースコアで区切られます。
またデータベースのテーブルで使うカラム名の命名ルールとしては主キーの場合はidという名前のintegerカラムがテーブルを作成すると自動で作成され、外部キーを設定する場合は「テーブル名の単数形_id」という名前のidを設定する決まりになっています。よってuser_idやpost_id、user_advice_idといった名前のid名になります。
Active Recordでのデータの読み書き
Active Recordでのデータの読み書きはCRUDと呼ばれるデータベースを操作する「Create」「Read」「Update」「Delete」メソッドの頭文字を繋げた言葉で表わされます。
・Create …. createメソッドを実行すると新しいオブジェクトが返され、データベースが保存されます。(newメソッドと似ていますがnewメソッドは単にオブジェクトを返すだけです。)
・Read …. データベース内の情報にアクセス出来る。以下は主なアクセスメソッドです。
user = User.all # 全てのユーザーを返す
user = User.first # 最初のユーザーを返す
user = User.find_by(name: 'toda') # todaという名前の最初のユーザーを返す
・Update …. オブジェクトの情報を取得して更新することが出来ます。
・Delete …. オブジェクトの情報を取得して削除してデータベースから削除することが出来ます。