🔴

【Ruby】Railsのscaffoldコマンドについて

2024/04/12に公開

はじめに:

プログラミング初学者がRailsアプリケーションを動かす際に必要な知識として、scaffoldがある。プログラミング初学者がVScodeを用いてRails環境の構築後、scaffoldコマンドを用いてCRUD処理を実装できることを目標とした記事となっている。

この記事を読むことで得られる結果:

ローカル環境(自分のPC)にインストールされているVScodeからRailsアプリケーションをブラウザで表示させ、scaffoldコマンドを用いてCRUD処理を実装できる。

環境:

環境構築がまだの方はこちらから
https://zenn.dev/code_journey_ys/articles/c0cc5dd5372036

  • windows 11
  • Vscode 1.87.2
  • Ubuntu 22.04
  • wsl 2.1.5.0
  • ruby 3.2.3
  • rails 6.1.7
  • sqlite3 3.37.2

使うフォルダは以下の通り、(★)のファイルを使用していく。

フォルダ名 目的・内容
app/ モデル(★)、ビュー(★)、コントローラ(★)のディレクトリ
config/ ルーティング(★)や言語設定やその他各種設定ファイルのディレクトリ
db/ データベースに関するディレクトリ(★)

scaffoldとは(基礎):

scaffoldコマンドの基本構文

ターミナル
rails g scaffold モデル名 フィールド名1:データ型1 フィールド名2:データ型2
MVCモデルやCRUDの理解ができてない方はこちら

scaffoldコマンドを実行してみよう

1: ターミナルでscaffoldコマンドを実行する。

ターミナル
rails g scaffold comment body:text
ターミナル(出力結果)
Running via Spring preloader in process 362854
      invoke  active_record
      create    db/migrate/20240411111914_create_comments.rb
      create    app/models/comment.rb
      invoke    test_unit
      create      test/models/comment_test.rb
      create      test/fixtures/comments.yml
      invoke  resource_route
       route    resources :comments
      invoke  scaffold_controller
      create    app/controllers/comments_controller.rb
      invoke    erb
      create      app/views/comments
      create      app/views/comments/index.html.erb
      create      app/views/comments/edit.html.erb
      create      app/views/comments/show.html.erb
      create      app/views/comments/new.html.erb
      create      app/views/comments/_form.html.erb
      invoke    resource_route
      invoke    test_unit
      create      test/controllers/comments_controller_test.rb
      create      test/system/comments_test.rb
      invoke    helper
      create      app/helpers/comments_helper.rb
      invoke      test_unit
      invoke    jbuilder
      create      app/views/comments/index.json.jbuilder
      create      app/views/comments/show.json.jbuilder
      create      app/views/comments/_comment.json.jbuilder
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/comments.scss
      invoke  scss
   identical    app/assets/stylesheets/scaffolds.scss

マイグレーションファイル、ルーティング、ビュー、モデル、レイアウトファイルなどが一括で作成される。

2: ターミナルからサーバーを起動し、表示を確認する。(おそらくエラー画面になるはず)

エラー画面
「マイグレーションの実行ができていません」というエラー画面が出ているかと思います。

4: マイグレーションの実行する。

ターミナル
$ rails db:migrate

5: http://localhost:3000/comments/newへアクセスし、エラー画面にならないことを確認する。

コメントの投稿画面

5: 再度ターミナルからルーティングを確認する。(8つのルーティングが作成されていればOK)

参考サイト

https://railsdoc.com/rails_base

おわりに

今回、プログラミング初学者がRailsアプリケーションを動かす際に必要な知識の【scaffold】を学んだ。scaffoldコマンドを用いることで簡単にCRUD処理を実装することが可能となる。

Discussion