🐡

railsの雛形を作成するscaffoldとは?

2021/01/23に公開

railsでは、0からプログラムを作る必要はなくテンプレートを作成してくれるscaffoldというコマンドがあります。便利な機能なので、解説してきます。

scaffoldとは?

scaffoldとは、アプリケーションの雛形を作ってくれる機能のことで、具体的には以下を作成してくれます。

  • モデル :データベースのアクセス
  • ビュー :HTMLを動的に生成
  • コントローラ :モデルとビューの制御
  • マイグレーション :データベース定義
  • ルーティング :リクエストに対する処理

CRUD機能の画面を作成

scaffoldを実行して雛形を作っただけでCRUDの機能を持つ画面を持ち、データの基本的な操作が可能となります。

CRUDとはデータを管理するために必要な基本的な機能のことで、以下の4つの機能の頭文字をとって「CRUD」と呼んでいます。

  • 作成:Create
  • 読み取り:Read
  • 更新:Update
  • 削除:Delete

scaffoldを実行

それでは実際にscaffoldを実行していきましょう。scaffoldを使ってUserモデルを作成し、文字列型のnameと数値型のageの2つの属性を持たせます。

bin/rails g scaffold User name:string age:integer

このコマンドを実行することで以下のファイルが自動で作成されます。

  • db/migrate/20210116010806_create_users.rb ⇒マイグレーション
  • app/models/user.rb ⇒Userモデル
  • app/controllers/users_controller.rb ⇒Userコントローラー
  • app/views/users ⇒Userのテンプレートビュー(index.html.erbなど)

DBを作成

scaffoldコマンドを実行するとテーブル定義情報を持つマイグレーションファイルが出来上がりました。しかし、実行環境のデータベースのテーブルは、まだ作成されていません。

なので、以下のコマンドを実行してUserテーブルを作成します。

bin/rails db:migrate

これによりマイグレーションファイルを読み込み、実際にUserテーブルを作成してくれます。

画面を確認

アプリケーションの雛形が作成され、データベースも出来上がったので実際に画面で確認してみましょう。

以下のコマンドを実行して、サーバーを立ち上げます。

rails s

サーバーが起動し、 「http://localhost:3000/users」 にアクセスするとUser一覧画面が表示されるはずです。

User一覧画面:http:localhost:3000/users

画面遷移を確認

実際に画面を動かしてみると以下のような画面遷移が行われるはずです。

作成、読み込み、更新、削除のCRUDの機能が実装されていることが分かりますよね。

まとめ

  • scaffoldを使えば、アプリケーションの雛形を作れる
  • モデル・ビュー・コントローラー、マイグレーション、ルーティング機能を自動で作成する
  • scaffoldでひな型を作成した後はマイグレーションファイルでデータベースを作成する

Discussion