tkymtk's blog

Ruby on Rails及びその周辺について調べたこと。Do whatever you want to do at your own pace.

Scaffoldで何が生成される?

Scaffoldを使うといったい何がどうなるのでしょうか。

Scaffoldとは:

Railsに用意されている、コードを自動生成するジェネレータのひとつ。
アプリケーションの足場となるプログラムのひな形を自動で構成してくれる。

"scaffold"を生成すると、任意のテーブルのCRUD機能(データの登録:CREATE、参照:READ、更新:UPDATE、削除:DELETE)を実現するプログラムの雛形と、テーブルを作成するためのマイグレーションファイルが構成されます。
scaffoldを用いた機能の追加 - Tuby Association

つまり、ある情報の登録、参照、更新、削除ができる単純なアプリケーションを作りたいときにはscaffoldだけで作成できる。

ちなみに、データベースとそのテーブルそのものは作成してくれないのだが、scaffoldで作成されたマイグレーションファイルを があることで、別途マイグレーションを行えば(rake db:migrate)自動でテーブルを作成してくれる。

また、色々なRailの解説をみていると、アプリを作成する際始めにdb:createでデータベースを作成してから db:migrateでテーブルを作成しているものがあるが、db:createを始めにしなければならないということでもないらしい。

初めてdb:migrateが実行されると、db/development.sqlite3という名前のファイルが生成されます。これはSQLiteデータベースです。
6.1.1データベースの移行 - Ruby on Rails tutorial
追記: 2012/11/22
開発環境のデータベースもPostgreSQLにしたらちゃんとcreateしなきゃだめだった。 createしなくても良いのは、sqliteのときだけかな。

他、参考にしたリンク:
第3回 Scaffoldで簡単にデータアクセス

scaffoldを利用した開発(1) - TECHSCORE

間違いがあれば、ご指摘下さると幸いです。