Scaffoldを使って必要なファイルを自動生成する
Scaffold ツールを使用すると、アプリケーションの基本機能である CRUD(Create, Read, Update, Delete) を行うために必要なコントロール、ビュー、モデルなどのファイルを自動的に作成してくれます。ここでは Scaffold を使って必要なファイルを自動生成する方法について解説します。
(Last modified: )
Scaffoldコマンドを実行する
それでは実際に Scaffold コマンドを実行してみます。まず最初に通常の手順でアプリケーションを作成します。コマンドプロンプトを起動し、アプリケーションを配置するディレクトリへ移動してください。
今回は addressbook というアプリケーションを作成します。コマンドプロンプトから次のように実行してください。(私の環境では Git がインストールされていないので、実際には -G を付けて実行しています)。
rails new addressbook
※ アプリケーションを新規に作成する場合の詳細については「Railsアプリケーションを作成する」を参照されてください。
アプリケーションの作成が終わりましたら Scaffold コマンドを使ってコントロールやモデルなどを作成するためのコマンドを実行します。書式は次のとおりです。(複数のフィールドを指定する場合は、スペースをあけて続けて記述してください)。
rails generate scaffold モデル名
rails generate scaffold モデル名 フィールド名1:データ型1 ...
今回はモデル名を personal 、 string 型の name カラムと string 型の address カラムを持つモデルを作成します。
それではコマンドプロンプトでアプリケーションディレクトリに移動したあと、次のように実行してください。
rails generate scaffold personal name:string address:string
必要なファイルが自動的に作成されました。
invoke active_record create db/migrate/20240615005508_create_personals.rb create app/models/personal.rb invoke test_unit create test/models/personal_test.rb create test/fixtures/personals.yml invoke resource_route route resources :personals invoke scaffold_controller create app/controllers/personals_controller.rb invoke erb create app/views/personals create app/views/personals/index.html.erb create app/views/personals/edit.html.erb create app/views/personals/show.html.erb create app/views/personals/new.html.erb create app/views/personals/_form.html.erb create app/views/personals/_personal.html.erb invoke resource_route invoke test_unit create test/controllers/personals_controller_test.rb create test/system/personals_test.rb invoke helper create app/helpers/personals_helper.rb invoke test_unit invoke jbuilder create app/views/personals/index.json.jbuilder create app/views/personals/show.json.jbuilder create app/views/personals/_personal.json.jbuilder
マイグレーションを行ってテーブルを作成する
Scaffold コマンドによってマイグレーションファイルも作成されています。具体的にどのようなファイルが作成されたのかはあとで確認しますが、マイグレーションファイルを使ってテーブルを作成しておきます。
コマンドプロンプトでアプリケーションディレクトリに移動してから次のようにコマンドを実行してください。(少し時間がかかります)。
rails db:migrate
これで準備は完了です。
-- --
Scaffold を使って必要なファイルを自動生成する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。