0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ruby on Rails こんなときどうする集

Posted at

はじめに

この記事は 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.rbget "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

生成物

なし

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?