LoginSignup
0
0

More than 1 year has passed since last update.

Ruby on Railsのscaffoldを使ってみる

Last updated at Posted at 2021-10-31

はじめに

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でファイルを作成してみました。
まとめてできるのでとても便利ですが、意味も分からず作成ができてしまうので、
私みたいな初学者は実際に一つ一つ作ってみて動きを確認した方が勉強になりますね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0