1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】scaffoldコマンドの使い方と処理内容まとめ

Posted at

Rails on Railsの超便利コマンドscaffoldは具体的にどんな処理をしているかについて。

scaffoldとは?

スッキャフォルドといい、足場の意味。Railsでアプリケーションに必要なファイル(足場)を全部自動生成してくれる。

作成するのは、一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラ、モデル、ビューなど。

scaffold後は、足場の上に自分でプログラムを組んでいけばいい。


## scaffoldの使い方

$ rails g scaffold モデル名 [カラム名:型]

  • 「g」は「generate」の略
  • モデル名はパスカルケース(冒頭大文字)単数形
  • カラムを複数作る場合は、スペースでつなげる

image.png


## 実例
$ rails g scaffold Tweeet tweeet:text
Running via Spring preloader in process 4375
      invoke  active_record
      create    db/migrate/20210319063511_create_tweeets.rb
      create    app/models/tweeet.rb
      invoke    test_unit
      create      test/models/tweeet_test.rb
      create      test/fixtures/tweeets.yml
      invoke  resource_route
       route    resources :tweeets
      invoke  scaffold_controller
      create    app/controllers/tweeets_controller.rb
      invoke    erb
      create      app/views/tweeets
      create      app/views/tweeets/index.html.erb
      create      app/views/tweeets/edit.html.erb
      create      app/views/tweeets/show.html.erb
      create      app/views/tweeets/new.html.erb
      create      app/views/tweeets/_form.html.erb
      invoke    resource_route
      invoke    test_unit
      create      test/controllers/tweeets_controller_test.rb
      create      test/system/tweeets_test.rb
      invoke    helper
      create      app/helpers/tweeets_helper.rb
      invoke      test_unit
      invoke    jbuilder
      create      app/views/tweeets/index.json.jbuilder
      create      app/views/tweeets/show.json.jbuilder
      create      app/views/tweeets/_tweeet.json.jbuilder
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/tweeets.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.scss

▼指定できるカラム型
image.png


### 作成されたファイル 約20のファイルが生成/編集される。
# scss
new file:   app/assets/stylesheets/scaffolds.scss
new file:   app/assets/stylesheets/tweeets.scss

# CRUD操作
new file:   app/controllers/tweeets_controller.rb
new file:   app/helpers/tweeets_helper.rb
new file:   app/models/tweeet.rb
new file:   app/views/tweeets/_form.html.erb
new file:   app/views/tweeets/_tweeet.json.jbuilder
new file:   app/views/tweeets/edit.html.erb
new file:   app/views/tweeets/index.html.erb
new file:   app/views/tweeets/index.json.jbuilder
new file:   app/views/tweeets/new.html.erb
new file:   app/views/tweeets/show.html.erb
new file:   app/views/tweeets/show.json.jbuilder

#ルーティング
modified:   config/routes.rb

# マイグレーションファイル
new file:   db/migrate/20210319063511_create_tweeets.rb

# テスト用
new file:   test/controllers/tweeets_controller_test.rb
new file:   test/fixtures/tweeets.yml
new file:   test/models/tweeet_test.rb
new file:   test/system/tweeets_test.rb

image.png

https://railsdoc.com/page/rails_scaffold

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?