プログラミングの勉強日記
2020年7月22日 Progate Lv.213
Ruby on RailsⅧ
Progateではscaffoldを扱わないが、学校の授業で勉強したので自分でも調べてみた。
scaffoldとは
scaffoldは「スキャフォールド」と読みRuby on Railsのコードを自動生成する便利なものの1つである。Railsアプリケーションの開発をする際にはモデル、コントローラ、ビュー、ルーティングを作成する必要がある。この作業をまとめて行う機能がscaffoldである。なので、scaffoldを使うことでRailsのアプリを早く作ることができる。
使い方
$ rails generate scaffold モデル名
$ rails generate scaffold モデル名 カラム名:データ型
このコマンドによって以下のファイルが生成される。
1.マイグレーションファイル、モデル(データベースのテーブルやカラムを変更できるファイル)
db/migrate/YYYYMMDDHHMMSS_create_モデル名.rb
app/model/モデル名.rb
2.ビュー(コントローラで定義されたアクションに対応するビューファイル)
app/views/モデル名/index.html.erb
app/views/モデル名/edit.html.erb
app/views/モデル名/show.html.erb
app/views/モデル名/new.html.erb
app/views/モデル名/_form.html.erb
3.コントローラとルーティング
test/controllers/モデル名_controller_test.rb
このファイルの中にindex,show,new,edit,create,update,destroy
のアクションが自動的に定義されている。
config/routes.rb
ルーティングの設定ファイルの中でresources :モデル名
と追加される。
4.その他
app/helpers/モデル名_helper.rb
test/helpers/モデル名_helper_test.rb
app/views/モデル名/index.json.jbuilder
app/views/モデル名/show.json.jbuilder
app/assets/javascripts/モデル名.js.coffee
app/assets/stylesheets/モデル名.css.scss
app/assets/stylesheets/scaffolds.css.scss
scaffoldで作成したファイルの削除
scaffoldを用いて作成したファイルはコマンドで削除することができる。
scaffolsで作成したファイルをすべて削除
$ rails destroy モデル名
Modelに関するファイルのみ削除
$ rails destroy model モデル名
コントローラのみ削除
$ rails destroy controller モデル名
ビューのみ削除
$ rails destroy view モデル名