Rails on Railsの超便利コマンドscaffold
は具体的にどんな処理をしているかについて。
scaffoldとは?
スッキャフォルドといい、足場の意味。Railsでアプリケーションに必要なファイル(足場)を全部自動生成してくれる。
作成するのは、一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラ、モデル、ビューなど。
scaffold後は、足場の上に自分でプログラムを組んでいけばいい。
## scaffoldの使い方
・$ rails g scaffold モデル名 [カラム名:型]
- 「g」は「generate」の略
- モデル名はパスカルケース(冒頭大文字)単数形
- カラムを複数作る場合は、スペースでつなげる
## 実例
$ rails g scaffold Tweeet tweeet:text
Running via Spring preloader in process 4375
invoke active_record
create db/migrate/20210319063511_create_tweeets.rb
create app/models/tweeet.rb
invoke test_unit
create test/models/tweeet_test.rb
create test/fixtures/tweeets.yml
invoke resource_route
route resources :tweeets
invoke scaffold_controller
create app/controllers/tweeets_controller.rb
invoke erb
create app/views/tweeets
create app/views/tweeets/index.html.erb
create app/views/tweeets/edit.html.erb
create app/views/tweeets/show.html.erb
create app/views/tweeets/new.html.erb
create app/views/tweeets/_form.html.erb
invoke resource_route
invoke test_unit
create test/controllers/tweeets_controller_test.rb
create test/system/tweeets_test.rb
invoke helper
create app/helpers/tweeets_helper.rb
invoke test_unit
invoke jbuilder
create app/views/tweeets/index.json.jbuilder
create app/views/tweeets/show.json.jbuilder
create app/views/tweeets/_tweeet.json.jbuilder
invoke assets
invoke scss
create app/assets/stylesheets/tweeets.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
### 作成されたファイル 約20のファイルが生成/編集される。
# scss
new file: app/assets/stylesheets/scaffolds.scss
new file: app/assets/stylesheets/tweeets.scss
# CRUD操作
new file: app/controllers/tweeets_controller.rb
new file: app/helpers/tweeets_helper.rb
new file: app/models/tweeet.rb
new file: app/views/tweeets/_form.html.erb
new file: app/views/tweeets/_tweeet.json.jbuilder
new file: app/views/tweeets/edit.html.erb
new file: app/views/tweeets/index.html.erb
new file: app/views/tweeets/index.json.jbuilder
new file: app/views/tweeets/new.html.erb
new file: app/views/tweeets/show.html.erb
new file: app/views/tweeets/show.json.jbuilder
#ルーティング
modified: config/routes.rb
# マイグレーションファイル
new file: db/migrate/20210319063511_create_tweeets.rb
# テスト用
new file: test/controllers/tweeets_controller_test.rb
new file: test/fixtures/tweeets.yml
new file: test/models/tweeet_test.rb
new file: test/system/tweeets_test.rb