はじめに
Ruby on Railsのscaffoldを使ってみました。
今までは勉強のために一つ一つ記述していたのですが、一度も使ってなかったのでお試しです。
scaffoldとは
調べてみると、今まで一つ一つ記述していたモデル、コントローラー、ビュー、ルーティングを自動的に作成してくれるみたいですね。
すごく手間が省かれますね。めっちゃ便利!!
使ってみた
まずはコマンドです。今回はモデル名は「Post」で作成します。
$ rails g scaffold Post カラム名 データ型
invoke active_record
create db/migrate/20211031145458_create_posts.rb
create app/models/post.rb
invoke test_unit
create test/models/post_test.rb
create test/fixtures/posts.yml
invoke resource_route
route resources :posts
invoke scaffold_controller
create app/controllers/posts_controller.rb
invoke erb
create app/views/posts
create app/views/posts/index.html.erb
create app/views/posts/edit.html.erb
create app/views/posts/show.html.erb
create app/views/posts/new.html.erb
create app/views/posts/_form.html.erb
invoke test_unit
create test/controllers/posts_controller_test.rb
create test/system/posts_test.rb
invoke helper
create app/helpers/posts_helper.rb
invoke test_unit
invoke jbuilder
create app/views/posts/index.json.jbuilder
create app/views/posts/show.json.jbuilder
create app/views/posts/_post.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/posts.coffee
invoke scss
create app/assets/stylesheets/posts.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
めっちゃファイルが作成されました。
そして、これで一覧、新規投稿、編集、削除全て作成することができちゃうので驚きです。
見た目は質素ですが、全て使用できますのであとはちゃちゃっとアレンジするだけなので、
初学者にはおすすめしない理由はそこですね。
削除してみた
scaffoldはまとめて削除することもできます。
$ rails d scaffold post
invoke active_record
remove db/migrate/20211031145458_create_posts.rb
remove app/models/post.rb
invoke test_unit
remove test/models/post_test.rb
remove test/fixtures/posts.yml
invoke resource_route
route resources :posts
invoke scaffold_controller
remove app/controllers/posts_controller.rb
invoke erb
remove app/views/posts
remove app/views/posts/index.html.erb
remove app/views/posts/edit.html.erb
remove app/views/posts/show.html.erb
remove app/views/posts/new.html.erb
remove app/views/posts/_form.html.erb
invoke test_unit
remove test/controllers/posts_controller_test.rb
remove test/system/posts_test.rb
invoke helper
remove app/helpers/posts_helper.rb
invoke test_unit
invoke jbuilder
remove app/views/posts
remove app/views/posts/index.json.jbuilder
remove app/views/posts/show.json.jbuilder
remove app/views/posts/_post.json.jbuilder
invoke assets
invoke coffee
remove app/assets/javascripts/posts.coffee
invoke scss
remove app/assets/stylesheets/posts.scss
invoke scss
もし間違えた時もまとめて削除できるので楽ですね。
「rails db:migrate」をした後に削除するのであれば
マイグレーションファイルのStatusをdownにする必要があるので忘れずに。
もし忘れても削除は可能ですので、その辺りのことはまた記事を探してみてください。
今回はscaffoldでファイルを作成してみました。
まとめてできるのでとても便利ですが、意味も分からず作成ができてしまうので、
私みたいな初学者は実際に一つ一つ作ってみて動きを確認した方が勉強になりますね。