Railsでは「Scaffold」と呼ばれる機能を使って、CURD(create/read/update/delete)機能を素早く実装することができます。
例えば「本」を管理するアプリを作成したい場合、本の登録、参照、更新、削除、一覧表示などの機能を一気に作成することができるのです。
作成された機能を「足場」として、アプリケーションを素早くつくりこんでいくことができます。
scaffoldコマンドを実行
Scaffold機能を呼び出すには「rails scaffold generate モデル名 列名:列型…」コマンドを実行します。例えばBookモデルを作成する場合、以下のコマンドを実行します。
$ bundle exec rails generate scaffold book title:string author:string summary:text
次のようなファイルが作成されます。
invoke active_record
create db/migrate/20220908071119_create_books.rb
create app/models/book.rb
invoke test_unit
create test/models/book_test.rb
create test/fixtures/books.yml
invoke resource_route
route resources :books
invoke scaffold_controller
create app/controllers/books_controller.rb
invoke erb
create app/views/books
create app/views/books/index.html.erb
create app/views/books/edit.html.erb
create app/views/books/show.html.erb
create app/views/books/new.html.erb
create app/views/books/_form.html.erb
invoke resource_route
invoke test_unit
create test/controllers/books_controller_test.rb
create test/system/books_test.rb
invoke helper
create app/helpers/books_helper.rb
invoke test_unit
invoke jbuilder
create app/views/books/index.json.jbuilder
create app/views/books/show.json.jbuilder
create app/views/books/_book.json.jbuilder
invoke assets
invoke scss
create app/assets/stylesheets/books.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
コントローラー、モデル、ビュー、マイグレーションなど必要なファイルがまとめて作成されている事がわかります。モデルに対応するテーブルをDBに作成するため、マイグレーションを実行します。
bundle exec rails db:migrate
これだけで完成です。実行してみましょう
bundle exec rails
ブラウザで「http://localhost:3000/books」にアクセスします。
▲本の一覧画面が表示されます。本を登録するには「New Book」をクリックします。
▲本の登録画面です。Title、Author、Summaryを入力し「Create Book」をクリックすると新規登録することができます。
▲登録に成功すると確認画面(参照画面)が表示されます。
▲一覧画面に戻ると先ほど登録した本の情報が表示されている事が分かります。右側のリンクをクリックし、「Show(参照)」「Edit(編集)」「Destroy(削除)」機能を呼び出すことができます。
カスタマイズする
Scaffoldで作成した画面がRailsの基本となります。初期状態では機能も外観も最低限ですが、それだけに分かりやすくなっており、ベースとしてカスタマイズしていくことができます。