RailsにおけるActiveRecord
Active Rrecord(アクティブレコード)とは
Gemの一種でデータベースからデータを読み込んだりする為のSQL文を発行してくれる。アーキテクチャーのMVCで言う所のM(モデル)そのもののことをさしています。
ちなみにSQL文は下記のような文になります。
#Active Recordメソッド(Tweet.all)と同じ意味です
SELECT `tweets`. * FROM `tweets`
Railsでは、実際にSQL文をコードに記述しなくても、フレームワークにより少ない記述でデータベースからデータの取り出し、保存などをすることができます。
このシステムのことをO/R(object/relational)マッピングと言います。
すなわち、ユーザーが入力したりするデータとデータベース側とを関連させデータのやりとりを行えるようにする領域と言うことになります。
Active Recordの機能を利用するには
編集するモデルファイルがApplication Recordクラスを継承している必要があり、Application RecordクラスはActive Recordクラスを継承している必要があります。
その為には、ターミナルで「raisl gコマンド」を使用してモデルを作成する必要があります。
#モデルの作成コマンド
rails g model モデル名
このコマンドを使用すると、Application Recordクラスを継承したモデルファイルを作成することが簡単にできます。
こう言った構造が使われている理由
通常、メソッドは定義しないと使用できないですよね。ユーザー定義メソッドを想像してもらえるとわかりやすいと思います。
しかし、テーブルから任意の列のレコードを取得してくる「faidメソッド」などは定義していなくても使用ができます。
その理由がActive Recordクラスを継承しているからと言う理由になります。
つまり、Active Recordクラスを定義しているファイルがあり、そこにメソッドの定義が記述されていると言うことになります。
「rails g model モデル名」でモデルファイルを作成すれば、自動的にActive Recordクラス>Application Recordクラスを継承したモデルを作ることができるので定義しなくても使えるメソッドがあるわけです。
これは、「rails g controller コントローラー名」で作成したコントローラーにも同じことが言えます。
他のActive Recordメソッド
- allメソッド
- newメソッド
- saveメソッド
- createメソッド など
まとめ
- Active RecordとはMVCのモデルそのもの
- O/Rマッピングと言う関連システムを使ってデータベースとやりとりを行う
- Active Recordメソッドには色々な種類がある