railsのお手軽コマンド!(scaffold)

railsに標準で用意されているscaffoldについてまとめます!!

scaffoldとは・・・

直訳すると、足場などの意味になります。

これは、rails の scaffoldを用いることで、アプリの足場というか土台を作成してくれるからです。

アプリの土台は何かというと、MVCモデルにおけるCRUDが自動で作成されるということです。

つまり、scaffoldを用いることで、いちいちコントローラーやモデルを作成しなくても良いということになります!


scaffoldの使い方 

$ rails g scaffold [カラム名①]: [型①] [カラム名②]:[型②]
⬆️のように打ち込む。(カラム名と型は必要に応じて増減する)

$ rails g scaffold article title:string
私は⬆️のようにしてみました!

このコマンドを打つだけで、必要なファイルが生成される。

作られるファイル

invoke  active_record
create    db/migrate/20210728104828_create_articles.rb 👈マイグレーションファイル

create    app/models/article.rb  👈モデルファイル

invoke    rspec  
create      spec/models/article_spec.rb  👈rspec(テスト)のファイル
invoke      factory_bot
create        spec/factories/articles.rb

invoke  resource_route 
route    resources :articles  👈ルートの記述
invoke  scaffold_controller
create    app/controllers/articles_controller.rb  👈コントローラーのファイル

invoke    erb
create      app/views/articles  👈ビューファイル
create      app/views/articles/index.html.erb
create      app/views/articles/edit.html.erb
create      app/views/articles/show.html.erb
create      app/views/articles/new.html.erb
create      app/views/articles/_form.html.erb

invoke    resource_route  
invoke    rspec
create      spec/requests/articles_spec.rb  👈rspec(テスト)のファイル

invoke    jbuilder  👈非同期通信でjson形式のデータを返すものらしい
create      app/views/articles/index.json.jbuilder
create      app/views/articles/show.json.jbuilder
create      app/views/articles/_article.json.jbuilder

こんな感じでファイルが作られました!


もし、不要なファイルがあるときは、

$ rails g scaffold article title:string --skip-jbuilder

--skip-jbuiderのようなスキップオプションをつけることもできます!


最後に

マイグレーションファイルが作成されているので、db:migrateを忘れずにしましょう!(私は忘れていました。笑)

$ rails db:migrate


まとめ

rails scaffoldについてざっくりまとめてみました。

今までは、勝手にいろいろなファイルが作られるのに抵抗があったり、自分の手で一つ一つMVCやCRUDを作ろうという変なプライドがありました。笑

けれども、scaffoldはやってみると便利ですね。

これからは、使える時には使っていこうと思います!

この記事が気に入ったらサポートをしてみませんか?