では、実際に
Scaffoldを使って開発してみることにしましょう。今までのテスト用アプリをそのまま利用してもいいですし、新たにWebアプリケーションを作成しても良いので、作成するアプリを用意してください。ここに、以下のような形でモデルを作成することにします。
モデル名:member
用意するフィールド:
・
name――名前を保管する。string値。
・
age――年齢を保管する。integer値。
・
mail――メールアドレスを保管。string値。
・
memo――メモ書き。text値。
テキストの保管に「
string」と「
text」がありますが、これはSQLデータベースの「varchar」と「text」に相当するものと考えてください。255文字以内の短いテキストであればstringを、それ以上の長文を扱う場合はtextを指定すると良いでしょう。
では、コマンドを実行しましょう。コマンドプロンプト(Aptana Studio 3ではTerminalビュー)に、以下のように書いてEnterしてください。
rails generate scaffold member name:string age:integer mail:string memo:text
これで、必要なファイル類がすべて自動生成されます。実に簡単ですね! ただし、「よし、これでOKだ! すぐにブラウザからアクセスしてみよう」と思ったとしても、まだエラーになりますから注意してください。
◎マイグレーションする!
なぜエラーになるのか。それは「データベースにテーブルが用意されていないから」です。
Scaffoldは、ファイルの生成は行なってくれますが、テーブルの作成まではしてくれないのです。そこで、コマンドプロンプトやTerminalビューから以下のように実行してマイグレーションを行います。
rake db:migrate
幸いというべきかさすがというべきか、マイグレーションファイルはちゃんと
Scaffoldでもちゃんと用意してくれますので、コマンド一発でテーブル生成が行えます。
◎生成されるファイル
Scaffoldでは、どのようなファイル類が作成されるのか、それぞれアプリケーションフォルダ内を調べてみましょう。以下のようなものが作られているはずです。
・コントローラー。「
members_controller.rb」が作成されます。
・モデル。「
member.rb」が作成されます。
・ビュー。「
members」フォルダがview内に作成され、その中に「
index.html.erb」「
edit.html.erb」「
new.html.erb」「
form.html.erb」といったビューテンプレートファイルが作成されます。
・静的ファイル。assetsフォルダ内に、「
members.js」「
members.css」「
scaffold.css」といったファイルが作成されます。
・マイグレーション。「
○○_create.migration.rb」ファイルが「
db」内に作成されます。
・ヘルパー。「
member_helper.rb」ファイルがhelpers内に作成されます。
・テスト。「
test」フォルダ内にMVCそれぞれのテスト用ファイルが複数作成されます。
ヘルパーやテストなどはまだ説明していないので役割がよくわからないかも知れませんが、とりえあず「こうしたファイルがすべて自動作成される」ということは覚えておくとよいでしょう。