RubyonRailsのScaffoldingとは?

Railsを学習している方 & は、Railsアプリケーションを起動するために「scaffold」を作成しなければならないと読んだかもしれません…

簡単!

これは、rails g scaffoldコマンドを使って行うことができます。

でも、足場って何?

“足場とは、建物、橋、その他すべての人工構造物の建設、維持、修理を助けるために作業員を支えるために用いられる仮設構造物 “です。 – Wikipedia

Rails への翻訳:

A scaffold is a set of automatically generated files which forms the basic structure of a Rails project.

These files include:

  • A controller
  • A model

  • View for every standard controller action (index, edit, show, new)

A new route.

A scaffold は自動的に生成されるファイルのセットです。

そして、データベースを準備するためのマイグレーション。

例を見てみましょう!

How to Use The Rails Scaffold Command

書籍に関するWebサイトのプロジェクトを足場する例は、このようになります。

rails g scaffold books

作成されるファイルの詳細については、多くのテキストがスクロールすることが確認できるはずです。

This example creates:

  • A BooksController
  • A Book model
  • A new resources :books route added to your config/routes.rb file
  • A set of testing-related files
  • View files under app/views/books (five in total)

Yes。

たくさんありますね。

この足場を作成した直後に元に戻したい場合は、次のコマンドを使用します。

rails d scaffold books

ここで、「d」は「破壊」を意味します。

これにより、scaffold プロセスによって作成されたファイルが DELETE されることに留意してください。

Now:

scaffoldしたコードを使用する前に、データベース スキーマを更新するためにmigrationsを実行する必要があります。

rails db:migrateコマンドを使用します。

エラー メッセージが表示されない場合は、準備は完了です! 新しいRailsアプリケーション、または新しいモデル、ビュー&、対応するコントローラが必要な新機能のための基本構造ができました。

Next:

Run rails server.

Open your browser to localhost:3000/books & you should see the results!

Rails Scaffolding With Extra Fields

デフォルトでは…

モデルはタイムスタンプ フィールドのみを取得し、ブック(または作業中の任意のモデル)について記録できる情報は、それらが作成または更新された時間だけであるということを意味します。

ここで、追加のフィールドを使用してスキャフォールドする方法を説明します。

rails g scaffold books title:string author:string publication_year:integer

このようにスキャフォールドを生成すると、作業するフィールドが 3 つになります。

これは、単にデータベースのタイムスタンプを持つよりも少し面白いです。

これは、rails g migrationでmigrationsを作成するときに使用するのと同じ構文です。

特定のコンポーネントの生成

今すぐ必要ないものや欲しいものをscaffoldingが作成します。

でもRailsは素敵です。

コントローラなどの個々のコンポーネントは、rails g (g for generate) コマンドで作成できます。

例:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (create model + migration)
  • rails g migration CreateBook title:string year:integer (creates migration only)

scaffolding コマンドを使う大きなメリットは、すべてのファイルが正しい命名規則で作成されているのでおかしなエラーメッセージを避けることができる、ということです。 また、これらのファイルを手動で作成する作業も省けます。

Btw…

使用する予定のない自動生成されたファイルは削除することが良い習慣とされています。 そのため、「g controller」のようなジェネレーターを使用した後、作成されたファイルのリストを確認し、&必要のないものを削除します。

まとめ

新しいRailsアプリケーションを素早く開始して練習できるように、Rubyの足場について学習しました。

より深く学ぶにつれ、scaffolding を手放したくなるかもしれません。

でも、必要なときに個別のコントローラ、モデル、またはビューファイルを生成することはできます。

お読みいただきありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。