はじめに
この記事は DENSO アドベントカレンダー 2024 の13日目の記事です。
社内でRuby on Railsの研修を担当したことがあり、そのときにRuby on Railsで用意されているコマンドについて説明したのですが、「このコマンドってどうなるんだっけ?」というよりは「新しくController作りたいんだけど、なんてコマンド打てばいいんだっけ?」とかの質問が多かったので、こんなときどうする集をまとめてみました。
こんなときどうする?
但し書きがない限り「コントローラー名」「モデル名」と書いてある箇所は複数形のスネークケースです
新しいRailsアプリを作りたい
コマンド
rails new アプリケーション名
生成物
- アプリケーション名と同名のフォルダ
- (その配下に) railsに最低限必要なフォルダやファイル
railsサーバを起動したい
コマンド
rails s [オプション]
オプション詳細はこちら
生成物
特になし
railsサーバのコンソールにアクセスしたい
コマンド
rails c
もとのコンソールに戻るにはexit
生成物
特になし
新しいコントローラを作りたい
コマンド
rails g controller コントローラ名(パスカルケースでも可) [アクション名] [オプション]
【注意点】
すでに同名のコントローラがある場合は、実行不可
生成物
app/controllers/コントローラ名_controller.rb
-
config/routes.rb
にget "url" => "コントローラ名#アクション名"
app/views/コントローラ名のフォルダ
- (その配下に)
アクション名.html.erb
- テストとヘルパーファイル
【注意点】
設定によって生成物が変わります。
既存のコントローラにビューを追加したい
コマンド
なし
手動で下記を実施
-
config/routes.rb
にルート追加 - 既存コントローラーにアクションを追加
- 既存コントローラーのディレクトリに新しいアクションのビューファイルを追加
Railsアプリにデータベースを作成したい
コマンド
rails db:create [RAILS_ENV=環境(development, test, production)]
【注意点】
すでにデータベースがある場合は、実行不可
生成物
- データベース(データベース名はアプリケーション名_環境名)
新しいモデルを作成したい (データベース内に新しいテーブルを作成したい)
コマンド
rails g model モデル名 [カラム名:データ型]
# 生成されるマイグレーションファイルを編集してから
rails db:migrate
生成物
- マイグレーションファイル
app/models/モデル名.rb
- テストファイル
既存のモデルを変更したい (データベース内の既存テーブルを変更したい)
コマンド
rails g migration マイグレーション名 [カラム名:データ型]
# 生成されるマイグレーションファイルを編集してから
rails db:migrate
生成物
- マイグレーションファイル
最新のマイグレーションファイルの内容を取り消して、1つ前に戻したい
コマンド
rails db:rollback
生成物
なし