コードジェネレーター「scaffold」

# scaffoldとは?

Railsには、プログラム(ファイル含む)を自動生成するジェネレーターが用意されています。scaffoldもそのジェネレーターのうちのひとつです。scaffoldは「足場、骨格、枠組み」という意味です。Webアプリケーションの雛形となるプログラムを自動生成します。具体的には、一覧表示(index)、詳細表示(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)を行うために必要なコントローラ(Controller)、モデル(Model)、ビュー(View)を自動生成します。

# なぜコードの自動生成が便利なのか?
Railsは、Webアプリケーションフレームワークです。フレームワークの目的は、Web開発で用いられる共通した作業に伴う労力を軽減することです。

Web開発を始めたばかりだと、イメージしづらいかもしれませんが、何度もWeb開発をしていると同じような作業が多いことに気づきます。例えば、CRUD処理などがいい例です。

どうせ毎回同じような作業なのだから、そこの部分は自動生成しようというのが、ジェネレーターの基本的な考え方です。なので、初学者の方はこのジェネレーターが生成したコードを学ぶことには大きな価値があります。なぜなら、その自動化された部分こそが、Web開発の基本だからです。実際の開発では労力軽減として自動化しますが、学習段階では、自動化の中身を見ていくことに価値があるのです。

ここまでの、チャプター4~8でやった作業は、このscaffoldにより自動化される内容を自動化せずに丁寧に見てきました。自動化の中身を見てきたのです。

この最後のチャプターでは、scaffoldを使って実際に自動化された開発を見ていきます。自動生成されたコードやファイルを詳細に見ていきましょう。

# Board関係をscaffoldする

$ rails g scaffold board title:string editor:string
Revert "コードジェネレーター「scaffold」"

This reverts commit f10921ccc8e177f9bf6587d76b21eea8ebf7e03d.
コードジェネレーター「scaffold」

# scaffoldとは?

Railsには、プログラム(ファイル含む)を自動生成するジェネレーターが用意されています。scaffoldもそのジェネレーターのうちのひとつです。scaffoldは「足場、骨格、枠組み」という意味です。Webアプリケーションの雛形となるプログラムを自動生成します。具体的には、一覧表示(index)、詳細表示(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)を行うために必要なコントローラ(Controller)、モデル(Model)、ビュー(View)を自動生成します。

---

# なぜコードの自動生成が便利なのか?

Railsは、Webアプリケーションフレームワークです。フレームワークの目的は、Web開発で用いられる共通した作業に伴う労力を軽減することです。

Web開発を始めたばかりだと、イメージしづらいかもしれませんが、何度もWeb開発をしていると同じような作業が多いことに気づきます。例えば、CRUD処理などがいい例です。

どうせ毎回同じような作業なのだから、そこの部分は自動生成しようというのが、ジェネレーターの基本的な考え方です。なので、初学者の方はこのジェネレーターが生成したコードを学ぶことには大きな価値があります。なぜなら、その自動化された部分こそが、Web開発の基本だからです。実際の開発では労力軽減として自動化しますが、学習段階では、自動化の中身を見ていくことに価値があるのです。

ここまでの、チャプター4~8でやった作業は、このscaffoldにより自動化される内容を自動化せずに丁寧に見てきました。自動化の中身を見てきたのです。

この最後のチャプターでは、scaffoldを使って実際に自動化された開発を見ていきます。自動生成されたコードやファイルを詳細に見ていきましょう。
Board関係をscaffoldする

1. $rails g scaffold board titile:title editor:string

2. マイグレーションする(migration)する
Command
$ rake db:migrate
3.　サーバーを立てる
Command
$rails s

# [Boards#index] localhost:3000/boards にアクセスする
コードを一行も書いていないのに、ページができています。

# [Boards#new, create] /boards/new にアクセスする
こちらもなにもコードを書いていないのに、スレッド(ボード)作成画面ができています。しかも、入力すると作成もできます。

# [Boards#show] /boards/1 にアクセスする
作成成功のメッセージとともに、個別ページが表示されます。今回の仕様だと、このページにレス(コメント)一覧とレス作成フォームが表示されてます。

# [Boards#edit,update] /boards/1/edit にアクセスする
編集することもできます。

# [Boards#index] /boards にアクセスすると更新されています
ボードを作成したので、ボード一覧が更新されています。

# 自動生成されるRoutingを見る
localhost:3000/rails/info/routesにアクセス。