script/generate scaffold で生成されるもの。
$ script/generate scaffold Article Admin
で生成されたものたちが何か気になる。
generateの実行前のものとのdiffをとってみた。
(office.1 が実行前。office.2が実行後。)
$ diff -ur office.1 office.2 office.2/app/controllersだけに発見: admin_controller.rb office.2/app/helpersだけに発見: admin_helper.rb office.2/app/modelsだけに発見: article.rb office.2/app/viewsだけに発見: admin office.2/app/views/layoutsだけに発見: admin.rhtml diff -ur office.1/log/development.log office.2/log/development.log --- office.1/log/development.log 2003-05-28 03:30:41.000000000 +0900 +++ office.2/log/development.log 2003-05-28 04:24:54.000000000 +0900 @@ -0,0 +1,2 @@ + SQL (0.000332) SET SQL_AUTO_IS_NULL=0 + Article Columns (0.003327) SHOW FIELDS FROM articles office.2/public/stylesheetsだけに発見: scaffold.css office.2/test/fixturesだけに発見: articles.yml office.2/test/functionalだけに発見: admin_controller_test.rb office.2/test/unitだけに発見: article_test.rb
ほぅ、2つ目の引数で入れた Admin がコントローラやヘルパー、ビューの名前に使われて、Articleがモデルの名前に使われるのか。
generateの引数が1つだけ(Article)だけで、generate scaffold したものとも比較してみる。
(office.2が"scaffold Article Admin"。office.3が"scaffold Article")
$ diff -ur office.2 office.3 office.2/app/controllersだけに発見: admin_controller.rb office.3/app/controllersだけに発見: articles_controller.rb office.2/app/helpersだけに発見: admin_helper.rb office.3/app/helpersだけに発見: articles_helper.rb office.2/app/viewsだけに発見: admin office.3/app/viewsだけに発見: articles office.2/app/views/layoutsだけに発見: admin.rhtml office.3/app/views/layoutsだけに発見: articles.rhtml diff -ur office.2/log/development.log office.3/log/development.log --- office.2/log/development.log 2003-05-28 04:24:54.000000000 +0900 +++ office.3/log/development.log 2003-05-28 04:27:28.000000000 +0900 @@ -1,2 +1,2 @@ - SQL (0.000332) SET SQL_AUTO_IS_NULL=0 - Article Columns (0.003327) SHOW FIELDS FROM articles + SQL (0.000331) SET SQL_AUTO_IS_NULL=0 + Article Columns (0.003310) SHOW FIELDS FROM articles office.2/test/functionalだけに発見: admin_controller_test.rb office.3/test/functionalだけに発見: articles_controller_test.rb
"scaffold Article Admin"から変わったのは、、admin・・・ だったのが、articles・・・ になったこと。
前回と変わったファイルの名前は、単数のarticle でなく、articles と複数形になっているのが興味深い。
ちなみに、"scaffold Article Admin" となっていたのを小文字"scaffold article admin"としても、生成されるファイルは同じ。
とりあえずわかったのは、
- モデルの名前は、テーブルの名前の単数形
- モデル以外の名前は、テーブルの名前(複数形)
- scaffold の2番目の引数は、モデル以外(コントローラやビュー)のファイルの名前になる。