はじめに
rails generateをするときに、どんなファイルが作成されるのかなど毎回調べてしまっていたため、主に使っているものを自分でまとめます。
※rails generateは全て、rails g と省略します。
自動作成されるファイルまとめ
コマンド名 | コントローラ | ビュー | モデル | マイグレーション | アセット | ルート | テスト | ヘルパー |
---|---|---|---|---|---|---|---|---|
model | × | × | ○ | ○ | × | × | ○ | × |
controller | ○ | ○ | × | × | ○ | ○ | ○ | ○ |
scaffold | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
scaffold_controller | ○ | ○ | × | × | × | × | ○ | ○ |
migration | × | × | × | ○ | × | × | × | × |
コマンド一覧
rails g model
[モデルの作成]
$ rails g model User name:string
Userモデルを作成し、nameカラムをstring型で追加します。
マイグレーションファイルも作成されるので、後からでもカラム等の編集は可能です。
[作成されるファイル]
invoke active_record
create db/migrate/yyyymmddhhmmss_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
rails g controller
[コントローラーの作成]
$ rails g controller Users home
Usersコントローラーを作成し、homeアクションを追加します。
作成されたコントローラーから、アクションの編集は可能です。
編集した場合、ルーティングは必ず設定します。
[作成されるファイル]
create app/controllers/users_controller.rb
route get 'users/home'
invoke erb
create app/views/users
create app/views/users/home.html.erb
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
rails g scaffold
[モデルの作成(scaffold)]
$ rails g scaffold User name:string
Userモデルを作成し、nameカラムをstring型で追加します。
[作成されるファイル]
invoke active_record
create db/migrate/yyyymmddhhmmss_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
create app/views/users/_user.html.erb
invoke resource_route
invoke test_unit
create test/controllers/users_controller_test.rb
create test/system/users_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
create app/views/users/_user.json.jbuilder
rails g scaffold_controller
[コントローラーの作成(scaffold)]
$ rails g scaffold_controller User home
Usersコントローラーを作成し、homeアクションを追加します。
[作成されるファイル]
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
create app/views/users/_user.html.erb
invoke resource_route
route resources :users
invoke test_unit
create test/controllers/users_controller_test.rb
create test/system/users_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
create app/views/users/_user.json.jbuilder
rails g migration
[マイグレーションファイルの作成]
$ rails g migration add_column_to_User
add_column_to_User という部分はマイグレーションファイル名を表します。
何を記載しても問題ありませんが、行いたいことを記載すると分かりやすいです。
[作成されるファイル]
invoke active_record
create db/migrate/yyyymmddhhmmss_add_column_to_user.rb
rails destroy
[作成したものを削除]
$ rails destroy User
Userモデルを削除します。
controllerでもscaffoldでも使用できます。
#終わりに
migrationファイルの中身も、書き方がわからなくなることが多いので、
別でまとめようと思います。
お読みいただき、ありがとうございました!