オレマトペ

Webエンジニアを目指し学習中のデブアラサーによるほぼ擬音ブログ

Ruby on Rails チュートリアル第2章を終えて

f:id:Npakk:20200610222322p:plain

はじめに

このエントリーでは、Railsを勉強している私がRuby on Rails チュートリアルを学習した感想などを、
各章毎に述べていきたいと思います。
このチュートリアルを学ぶ方法は動画、電子書籍など色々な媒体で提供されておりますが、
ここではWebテキスト(第6版)を使用しております。

目次

第2章 Toyアプリケーション

Scaffoldジェネレータというスクリプトを使って、おもちゃアプリケーションを作ろうという内容。 Railsの用語や、エンジニア用語などが少し増えてくる。 自分なりに調べてこういった用語を解説しているが、 多少ではなくかなり間違っている可能性もあるので、ご指摘あればよろしくお願いします。

Scaffold

コントローラ・モデル・ビュー・ルーティングの全てを自動生成してくれる機能で、
好きなデータ型を指定すればString型だったりInteger型のメンバーを持つモデルを生成してくれるし、
そのデータ型で構成されるモデルの新規作成、修正、削除、一覧などのリクエスト応答処理も自動で生成してくれる。 Scaffold=”足場”の意味。
Railsの細かな仕様を理解するのには向いていないため、初心者は注意しようとのこと。
この機能の動きを把握しているなら、自動生成してくれるわけだし大変便利だと思う。

マイグレーション

Scaffoldを実行した後は、マイグレーションを行い、ユーザーから送られたデータをDBに登録できるようにする必要がある。
DBを直接操作してテーブルを作成する場合、SQLを使う必要があるが、
このマイグレーション機能を使えば、マイグレーションファイルを元に、 テーブルをRuby側で操作することが可能になる。
実はScaffoldでモデル作成時にマイグレーションファイルも作成されており、下記コマンドを実行すれば、 マイグレーション機能が働き、モデルを元にしたテーブル構造をDBに作成・反映してくれる。

$ rails db:migrate

Scaffoldで生成したビューを介して、ユーザーの登録・更新・削除を行う。 自動生成されたHTMLテンプレートを用いているため表示は非常に簡素だが、登録したデータなどがちゃんと反映されるのを見ると改めてすごい機能だと実感しました。

また、リクエストを受けてから内部ではどのように動いているのかをMVCパターンの観点から紐解いていくので、
ひとつひとつ手順を確認してMVCパターンの概要を知るといいですね。

そしてRailsにおけるRESTアーキテクチャにも触れていきます。

REST

REpresentational State Transferの略で、分散型システムにおける複数のソフトウェアを連携させるのに適した設計原則の集合、考え方のこと。 Railsはこの原則に従って設計されており、作成すべきコントローラやアクションがシンプルになりシステム規模の拡大などにも容易に対応可能になる。

ユーザーのデータモデルを作成したあとは、同じようにマイクロポスト(短い投稿の意味)のデータモデルを作成。
140文字まで入力可能・入力必須など、制限を追加しながら実装していきました。
また、データモデル同士の関連付けやクラス継承についても学習しました。

あとがき

用語なども増えてきて、複雑になってきたという印象。
逐一わからないところは調べないとチュートリアルでは全てを説明してくれているわけではないので、 見失う可能性が高いと感じました。
まだまだ第2章なのでがんばりたいですね。