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の基本となります。初期状態では機能も外観も最低限ですが、それだけに分かりやすくなっており、ベースとしてカスタマイズしていくことができます。