Rails Tutorial意図せず2週目(第6章 ユーザーのモデルを作成する)

背景

1周目第13章途中でどうしても問題が解消できなくなり、gitでソースコードを戻してもDBの状態が戻らない、Herokuにデプロイはできるがアプリケーションが表示されない等の問題達にぶち当たったため、意図せず2周目を開始することに。
今回は丁寧にわからない用語等あれば拾いつつ復習していこうと思います。

第6章 ユーザーのモデルを作成する

本章では前回作成したUsers Controllerを軸にUserに関するModelやDBを作成していきます。今後、ユーザー認証を行うための土台づくりです。
その中でDBのマイグレーションやActive Recordの使い方を学び、Railsの強力な概念を掴んでいきます。また、Model内でのバリデーション設定や正規表現などにも触れるため段々とRubyRailsの難しい部分にも触れていきます。

以下1周目はスルーしていた概念やコマンドの意味を調べる

Active Recordについて

Railsでデータベースを使ってやりとりするデフォルトのライブラリとして「Active Record」があります。これを利用してModelにデータを渡してデータベースの操作を行うことを本章で行いました。しかし、詳しい内容はわからないまま使っていたので、Railsガイドを参照して、ポイントを調べてみました。


以下、Railsガイド v7 Active Record の基礎からの引用です。

【Active Recordそのものについて】

  • Active Recordとは、MVCで言うところのM、つまりモデルに相当するものであり、ビジネスデータとビジネスロジックを表すシステムの階層です。
  • Active Recordは、データベースに恒久的に保存される必要のあるビジネスオブジェクトの作成と利用を円滑に行なえるようにします。

【ORMとして】

  • オブジェクト/リレーショナルマッピングO/RマッピングやORMと略されることもあります)とは、アプリケーションが持つリッチなオブジェクトをリレーショナルデータベース(RDBMS)のテーブルに接続することです。
  • ORMを用いると、SQL文を直接書く代りにわずかなアクセスコードを書くだけで、アプリケーションにおけるオブジェクトの属性やリレーションシップをデータベースに保存することもデータベースから読み出すこともできるようになります。

【結論】

  • Active RecordはMVCでいうModel相当でデータとビジネスロジックを表す階層である。
  • データをやり取りするORM(オブジェクト/リレーショナルマッピング)としてSQLを直接書かなくてもDBの操作を可能にする機能です。
  • 実際に第6章で書いていてもSQLを一切書くことなくDB操作が可能で、かなり楽にUserを作成できるようになりました。
  • これはSQLを知らない初学者にとっては非常に楽に開発が可能になる機能だと感じました。以前Java等でのORMを利用したことありましたが、それに比べて簡単にデータのCRUDができるActive Recordは凄いなと感じています。