Railsドキュメント

railsコマンド(rails)

新しいRailsのアプリケーションを作成

説明

新しいRailsのアプリケーションを作成
アプリケーションに最低限必要なフォルダやファイルが自動的に生成される

使い方

$ rails new アプリケーション名 [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-r, -ruby=PATH rubyバイナリのパス  
-m, -template=TAMPLATE テンプレートのパス  
-d, –database=DATABASE データベースの種類 sqlite3
-G, –skip-git .gitignoreファイルの生成をスキップ  
–skip-keeps .keepファイルの生成をスキップ  
-M, –skip-action-mailer Action Mailerファイルの生成をスキップ  
–skip-action-mailbox Action MailboxのGemをスキップ  
–skip-action-text Action TextのGemをスキップ  
-O, –skip-active-recode Active Recordファイルの生成をスキップ  
–skip-active-job Active Jobをスキップ  
–skip-active-storage Active Storageファイルの生成をスキップ  
-C, –skip-action-cable Action Cableファイルの生成をスキップ  
-S, –skip-sprockets Sprocketsファイルの生成をスキップ  
-J, –skip-javascript JavaScriptファイルの生成をスキップ  
–skip-hotwire Hotwireの統合をスキップ  
–skip-jbuilder jbuilderのGemをスキップ  
-T, –skip-test testファイルの生成をスキップ  
–skip-system-test システムテストファイルの生成をスキップ  
–skip-bootsnap bootsnapのGemをスキップ  
–dev githubリポジトリ上の自分のコードから作成  
–edge githubリポジトリ上の最新のコードから生成  
–master, –main RailsのメインブランチのGemfileでアプリケーションをセットアップ  
–rc=RC railsコマンドの追加の構成オプションを含むファイルへのパス  
–no-rc .railsrcファイルからの追加のロードをスキップ  
–api APIのみのアプリケーションを生成  
–minimal 最小限のRailsアプリケーションを生成  
-j, –javascript=JAVASCRIPT 組み込むJavaScriptライブラリーを指定 importmap
–css=CSS CSSプロセッサを選択  
ーB, –skip-bundle bundle installしない  
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

新しいRailsのアプリケーションを作成

$ rails new weblog

mysqlを使うアプリケーション

$ rails new weblog -d mysql

APIのみのアプリケーション

$ rails new weblog --api

古いバージョンのRailsでアプリケーション

$ rails _6.1.4_ new weblog

アプリケーションのひな型を生成

説明

アプリケーションの基本的な機能の一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラ、モデル、ビューをまとめて生成

使い方

$ rails generate scaffold 名前 [カラム名:型[:index]..] [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–force-plural 指定されたモデル名を強制的に使用  
-o, –orm=NAME 呼び出されるORMを指定 active_record
–model-name=MODEL_NAME 使用するモデル名  
–resource-route リソースルートを生成するか true
–api APIを生成するタイミング  
-c, –scaffold-controller=NAME 呼び出されるScaffoldコントローラ scaffold_controller
–migration migrationファイルを生成するか true
–timestamps timestampsファイルを生成するか true
–parent=PARENT 生成されたモデルの親クラスを指定  
–indexes belongs_toカラムにインデックスを付与するか true
–primary-key-type=PRIMARY_KEY_TYPE 主キーのタイプ  
-db, –database=DATABASE データベースの種類 sqlite3
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
–fixture フィクスチャファイルを生成するか true
-r, –fixture-replacement=NAME 呼び出されるフィクスチャを指定  
–system-tests=SYSTEM_TESTS システムテストを指定 test_unit
–helper helperファイルを生成するか true
–skip-routes config/routes.rbへのルート追加をスキップ  
-e, –template-engine=NAME 呼び出されるテンプレートエンジンを指定 erb
–jbuilder jbuilderファイルを生成するか true
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

カラムの型

データ方 説明
string 文字列
text 長い文字列
integer 整数
float 浮動小数
decimal 精度の高い小数
datetime 日時
timestamp より細かい日時
time 時間
date 日付
binary バイナリデータ
boolean Boolean型

生成されるファイル

ファイル 説明
db/migrate/YYYYMMDDHHMMSS_create_xxxes.rb マイグレーションファイル
app/models/xxx.rb モデルファイル
app/controllers/xxxes_controller.rb コントローラファイル
app/views/XXXs/index.html.erb すべてのリストを表示
app/views/XXXs/edit.html.erb 編集ファイル
app/views/XXXs/show.html.erb 詳細ページ
app/views/XXXs/new.html.erb 新規ページ
app/views/XXXs/_form.html.erb フォーム用ページ
app/views/xxxes/_xxx.html.erb  
app/helpers/xxxes_helper.rb ヘルパー
test/models/xxx_test.rb モデルテスト
test/fixtures/xxxes.yml フィクスチャテスト
test/controllers/xxxes_controller_test.rb コントローラテスト
test/system/xxxes_test.rb システムテスト
app/views/xxxes/index.json.jbuilder Jbuilderファイル
app/views/xxxes/show.json.jbuilder Jbuilderファイル
app/views/xxxes/_xxx.json.jbuilder Jbuilderファイル

最小の引数

$ rails generate scaffold post

属性を指定

$ rails generate scaffold post title:string body:text published:boolean

モデル以外のアプリケーションのひな型を生成

説明

アプリケーションの基本的な機能の一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラやビューをまとめて生成
scaffoldとの違いはモデルやアセットが作られないこと

使い方

$ rails generate scaffold_controller 名前 [カラム名:型..] [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–force-plural 指定されたモデル名を強制的に使用  
–model-name=MODEL_NAME 使用するモデル名  
–helper helperファイルを生成するか true
-o, –orm=NAME 呼び出されるORMを指定 active_record
–api APIを生成するタイミング  
–skip-routes config/routes.rbへのルート追加をスキップ  
-e, –template-engine=NAME 呼び出されるテンプレートエンジンを指定 erb
–resource-route リソースルートを生成するか true
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
–jbuilder jbuilderファイルを生成するか true
–system-tests=SYSTEM_TESTS システムテストを指定 test_unit
–timestamps timestampsファイルを生成するか true
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

カラムの型

データ方 説明
string 文字列
text 長い文字列
integer 整数
float 浮動小数
decimal 精度の高い小数
datetime 日時
timestamp より細かい日時
time 時間
date 日付
binary バイナリデータ
boolean Boolean型

生成されるファイル

ファイル 説明
app/controllers/XXXs_controller.rb コントローラファイル
app/views/XXXs/index.html.erb すべてのリストを表示
app/views/XXXs/edit.html.erb 編集ファイル
app/views/XXXs/show.html.erb 詳細ページ
app/views/XXXs/new.html.erb 新規ページ
app/views/XXXs/_form.html.erb フォーム用ページ
app/helpers/XXXs_helper.rb ヘルパー
test/functional/XXXs_controller_test.rb コントローラ用テストファイル
test/unit/XXX_test.rb モデル用テストファイル
test/fixtures/XXXs.yml フィクスチャファイル
test/unit/helpers/XXXs_helper_test.rb テスト用

$ rails generate scaffold_controller CreditCard

コントローラとビューの生成

説明

コントローラとビューを生成

使い方

$ rails generate controller 名前 [アクション名..] [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–skip-routes config/routes.rbへのルート追加をスキップ  
–helper helperファイルを生成するか true
-e, –template-engine=NAME 呼び出されるテンプレートエンジンを指定 erb
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

コントローラとビューを生成

$ rails generate controller Page

アクションとビューも生成

$ rails generate controller page title

階層化されたコントローラを生成

$ rails generate controller 'admin/page'

マイグレーションファイルの生成

説明

マイグレーションファイル(テーブル定義の作成・変更するファイル)を生成

特徴

  • 必ずupメソッドとdownメソッドを含めなければならない
  • self.upがmigrationのバージョンがあがるときに実行
  • self.downがmigrationのバージョンがあがるときに実行
  • クラス名をすべて小文字にしたものが、ファイル名アンダースコア(_)以降と一致する必要がある

使い方

$ rails generate migration 名前 [カラム名:型[:index]..] [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–timestamps timestampsファイルを生成するか true
–primary-key-type=PRIMARY_KEY_TYPE 主キーのタイプ  
-d, –database=DATABASE データベースの種類 sqlite3
-f, –force ファイルが存在する場合に上書き  
-q, –quiet 進捗状況を表示しない  
-p, –pretend ドライラン  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプを表示  

カラムの型

データ方 説明
string 文字列
text 長い文字列
integer 整数
float 浮動小数
decimal 精度の高い小数
datetime 日時
timestamp より細かい日時
time 時間
date 日付
binary バイナリデータ
boolean Boolean型

作成されるファイルの基本構成

class マイグレーション名s < ActiveRecord::Migration
  def up
  end

  def down
  end
end

マイグレーションファイルを生成

$ rails generate migration Page

カラムを指定して生成

$ rails generate migration AddTitleToPage title:string

モデルの生成

説明

モデルを生成

使い方

$ rails generate model 名前 [カラム名:型[:index]..] [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–force-plural 指定されたモデル名を強制的に使用  
-o, –orm=NAME 呼び出されるORMを指定 active_record
–migration migrationファイルを生成するか true
–timestamps timestampsファイルを生成するか true
–parent=PARENT 生成されたモデルの親クラスを指定  
–indexes belongs_toカラムにインデックスを付与するか true
–primary-key-type=PRIMARY_KEY_TYPE 主キーのタイプ  
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
–fixture フィクスチャファイルを生成するか true
-r, –fixture-replacement=NAME 呼び出されるフィクスチャを指定  
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

カラムの型

説明
string 文字列
text 長い文字列
integer 整数
float 浮動小数
decimal 精度の高い小数
datetime 日時
timestamp より細かい日時
time 時間
date 日付
binary バイナリデータ
boolean Boolean型
primary_key プライマリキー

indexの種類

名前 説明
uniq ユニーク
index インデックス

補足

  • integer, string, text, binaryでは制限値を{ }で記述

モデルを生成

$ rails generate model user

階層を指定

$ rails generate model admin/account

stringの制限が30文字

$ rails generate model user pseudo:string{30}

indexを付与

$ rails generate model user pseudo:string:index

ユニークなindexを付与

$ rails generate model user pseudo:string:uniq

application_recordファイルを生成

説明

application_recordファイルを生成

使い方

$ rails generate application_record [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-o, –orm=NAME 呼び出されるORMを指定 active_record
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate application_record

新しいヘルパーを生成

説明

新しいヘルパーを生成

使い方

$ rails generate helper 名前 [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-p, –pretend ドライラン  
-f, –force ファイルが存在する場合に上書き  
-s, –skip 既に存在するファイルはスキップ  
-q, –quiet 進捗状況を表示しない  
-h, –help ヘルプを表示  

新しいヘルパーを生成

$ rails generate helper CreditCard

under_scoredの名前

$ rails generate helper credit_card

新しいリソースを生成

説明

RESTfulなリソース指向アプリケーションに適した空のモデルとコントローラを含む新しいリソースを生成

使い方

$ rails generate resource 名前 [カラム名[:型][:index]..] [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–force-plural 与えられたモデル名を強制的に使用  
–model-name=MODEL_NAME 使用するモデル名  
-c, –resource-controller=NAME 使用するリソースコントローラ controller
-a, –actions=ACTION ACTION リソースコントローラーのアクション  
–resource-route リソースルートを生成するか true
–migration migrationファイルを生成するか true
–timestamps timestampsファイルを生成するか true
–parent=PARENT 生成されたモデルの親クラスを指定  
–indexes belongs_toカラムにインデックスを付与するか true
–primary-key-type=PRIMARY_KEY_TYPE 主キーのタイプ  
–db, –database=DATABASE 使用するデータベースを指定  
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
–fixture フィクスチャファイルを生成するか true
-r, –fixture-replacement=NAME 呼び出されるフィクスチャを指定  
–skip-routes config/routes.rbへのルート追加をスキップ  
–helper helperファイルを生成するか true
-e, –template-engine=NAME 呼び出されるテンプレートエンジンを指定 erb
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

新しいリソースを生成

$ rails generate resource post

カラム名あり

$ rails generate resource post title:string body:text published:boolean

新しいケーブルチャンネルを生成

説明

サーバとクライアントに新しいケーブルチャンネルを生成

使い方

$ rails generate channel 名前 [メソッド..] [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–assets アセットを生成するか true
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate channel Chat speak

新しい統合テストを生成

説明

新しい統合テストを生成

使い方

$ rails generate integration_test 名前 [オプション]
オプション 説明 デフォルト値
–skip-namespace namespace の生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–integration-tool=NAME 呼び出される統合ツール test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate integration_test GeneralStories

新しいシステムテストを生成

説明

新しいシステムテストを生成

使い方

$ rails generate system_test 名前 [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–system-tests=SYSTEM_TESTS システムテストを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate system_test GeneralStories

jbuilderファイルを生成

説明

jbuilderファイルを生成

使い方

$ rails generate jbuilder 名前 [フィールド:型..] [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–force-plural 与えられたモデル名を強制的に使用  
–model-name=MODEL_NAME 使用するモデル名  
–timestamps timestampsファイルを生成するか true
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate jbuilder hoge

アクティブなジョブファイルを作成

説明

app/jobs以下ににアクティブなジョブファイルを生成

使い方

$ rails generate job 名前 [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
–queue=QUEUE 生成されたジョブのキューの名前 default
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate job hoge

新しいメールボックスクラスを生成

説明

app/mailboxes以下に新しいメールボックスクラスを生成し、テンプレートエンジンとテストフレームワークを起動

使い方

$ rails generate mailbox 名前 [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate mailbox inbox

新しいメーラーとそのビューを生成

説明

新しいメーラーとそのビューを生成

使い方

$ rails generate mailer 名前 [メソッド..] [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-e, –template-engine=NAME 呼び出されるテンプレートエンジンを指定 erb
-t, –test-framework=NAME 呼び出されるテストフレームワークを指定 test_unit
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate mailer Notifications signup forgot_password invoice

ベンチマークを生成

説明

パフォーマンスの最適化を比較するためのベンチマークを生成

使い方

$ rails generate benchmark ファイル名

コマンド実行後に「script/benchmarks/opt_compare.rb」が作成され、「ruby script/benchmarks/opt_compare.rb」で実行

$ rails generate benchmark opt_compare

新しいRakeタスクを生成

説明

新しいRakeタスクを生成

使い方

$ rails generate task 名前 [アクション..] [オプション]
オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails generate task feeds fetch erase add

自動生成したファイルの削除

説明

rails generateで自動生成したファイルを削除

使い方

$ rails destroy ファイルの種類 [削除するファイル名] [オプション]

短縮形

 $ rails d ファイルの種類 [削除するファイル名[ [オプション]

ファイルの種類

  • application_record
  • benchmark
  • channel
  • controller
  • generator
  • helper
  • integration_test
  • jbuilder
  • job
  • mailbox
  • mailer
  • migration
  • model
  • resource
  • scaffold
  • scaffold_controller
  • system_test
  • task

オプション

オプション 説明
-h, –help ヘルプを表示
-p, –pretend ドライラン
-f, –force ファイルが存在する場合に上書き
-s, –skip 既に存在するファイルはスキップ
-q, –quiet 進捗状況を表示しない

helloのコントローラを削除

$ rails destroy controller hello

マイグレーションファイルの削除

$ rails destroy migration AddSslFlag

データベースを作成

説明

datebase.ymlの設定に従ってデータベースを作成

使い方

環境ごと

$ rails db:create [RAILS_ENV=環境(development, text, production)]

すべて

$ rails db:create:all

データベースを作成

$ rails db:create

production環境

$ rails db:create RAILS_ENV=production

データベースを削除

説明

datebase.ymlの設定に従ってデータベースを削除

使い方

環境ごと

$ rails db:drop [RAILS_ENV=環境(development, text, production)]

すべて

$ rails db:drop:all

データベースを削除

$ rails db:drop

production環境のデータベースを削除

$ rails db:drop RAILS_ENV=production

マイグレーションの実行

説明

未実行のマイグレーションファイルを実行

使い方

$ rails db:migrate [VERSION=バージョン番号 オプション]

実行の流れ

  1. rails db:migrateを実行
  2. schema_migrationsテーブルを調べ、存在しなければ作成
  3. db/migrateディレクトリ内のすべてのマイグレーションファイルを調べる
  4. データベースの現在のバージョンと異なるバージョンがあった場合、データベースに適応
  5. schema_migrationsテーブルの更新

詳細

コマンド 説明
rails db:migrate [VERSION=バージョン番号] [オプション] db/migrate内のスクリプトファイルからdatabaseにテーブル作成
rails db:migrate:down 指定したmigrationファイルのself.downメソッドを実行
rails db:migrate:redo [STEP=ステップ数] 指定したmigrationファイルのself.downメソッドを実行
rails db:migrate:status マイグレーションの状況を表示
rails db:mgrate:up 指定したmigrationファイルのself.upメソッドを実行

オプション

オプション 説明 デフォルト値
RAILS_ENV testやproduction環境の設定を使用する場合に使用 development
VERBOSE 途中結果を表示するか false

未実行のマイグレーションファイルを実行

$ rails db:migrate

プロダクション環境のマイグレーション

$ rails db:migrate RAILS_ENV=production

テスト環境のマイグレーション

$ rails db:migrate RAILS_ENV=test

特定のバージョンのスキーマに変更

$ rails db:migrate VERSION=201010190000

テーブルの初期化

$ rails db:migrate:reset

一つ前のバージョンに戻す

$ rails db:migrate:redo STEP=1

指定したマイグレーションのみ実行

$ rails db:migrate:up VERSION=201010190000

スキーマのバージョンを調べる

$ rails db:version

暗号化を構成するための鍵セットを生成

説明

特定の環境でアクティブレコード(Active Record)の暗号化を構成するための鍵セットを生成

使い方

$ rails db:encryption:init

$ rails db:encryption:init

データベースの環境値を設定

説明

データベースの環境値を設定

使い方

$ rails db:environment:set

$ rails db:environment:set

フィクスチャを現在の環境のデータベースにロード

説明

フィクスチャを現在の環境のデータベースにロード

使い方

$ rails db:fixtures:load

$ rails db:fixtures:load

コンソールを起動

説明

コンソールを起動

使い方

$ rails dbconsole [オプション]

短縮形

$ rails db [オプション]

オプション

オプション 説明
-e, –environment=ENVIRONMENT 環境
-p, –include-password database.ymlからパスワードを自動的に付与
–mode=MODE sqlite3を自動的に指定されたモード(html, list, line, column)に設定
–header ヘッダー
–db, –database=DATABASE 使用するデータベースを指定
-h, –help ヘルプ

環境

環境 説明
development 開発環境
text テスト環境
production 本番環境

$ rails dbconsole

マイグレーションのバージョンを確認

説明

マイグレーションのバージョンを表示

使い方

$ rails db:version [RAILS_ENV=環境(development, text, production)]

$ rails db:version

スキーマファイルでデータベースを作成

説明

スキーマファイルでデータベースを作成

使い方

$ rails db:schema:load [RAILS_ENV=環境(development, text, production)]

$ rails db:schema:load

現在のデータベースからスキーマファイルを生成

説明

現在のデータベースからスキーマファイルを生成

使い方

$ rails db:schema:dump [RAILS_ENV=環境(development, text, production)]

$ rails db:schema:dump

schema_cache.ymlファイルをクリア

説明

db/schema_cache.ymlファイルをクリア

使い方

$ rails db:schema:cache:clear

$ rails db:schema:cache:clear

schema_cache.ymlファイルを作成

説明

db/schema_cache.ymlファイルを作成

使い方

$ rails db:schema:cache:dump

$ rails db:schema:cache:dump

データベースに初期データを投入

説明

データベースに初期データを投入

使い方

$ rails db:seed

書き方

1件ずつ記述

# db/seeds.rb
Category.create(name: "Railsの基礎知識", position: 1)
Category.create(name: "Rubyの基礎知識", position: 2)

まとめて記述

# db/seeds.rb
5.times do |i|
     Page.create(name: "テスト #{i}", category_id: 1)
end

現在の環境の各データベースのテーブルを切り捨てseedをロード

説明

現在の環境の各データベースのテーブルを切り捨てseedをロード

使い方

$ rails db:seed:replant

$ rails db:seed:replant

データベースのリペア

説明

データベースが存在しない場合はセットアップを実行し、存在する場合はマイグレーションを実行

使い方

$ rails db:prepare

$ rails db:prepare

データベースのリセット

説明

現在の環境に合わせてすべてのデータベースをスキーマから落として再作成しseedデータをロード

使い方

$ rails db:reset

$ rails db:reset

データベースのロールバック

説明

スキーマを前のバージョンにロールバック

使い方

$ rails db:rollback

$ rails db:rollback

データベースのセットアップ

説明

すべてのデータベースを作成し、すべてのスキーマをロードしseedデータで初期化

使い方

$ rails db:setup

$ rails db:setup

データベース構造をダンプ

説明

データベース構造をダンプ

使い方

$ rails db:structure:dump [SCHEMA=ダンプするファイルパス(db/my_structure.sql)]

$ rails db:structure:dump

structure.sqlファイルからデータベースを再構築

説明

structure.sqlファイルからデータベースを再構築

使い方

$ rails db:structure:load

$ rails db:structure:load

使用するデータベースを変更

説明

使用するデータベースを変更

使い方

$ rails db:system:change [--to=使用するデータベース]

$ rails db:system:change --to=mysql

古いコンパイル済みのアセットを削除

説明

古いコンパイル済みのassetsを削除

使い方

$ rails assets:clean

$ rails assets:clean

コンパイル済みのアセットを削除

説明

コンパイル済みのassetsを削除

使い方

$ rails assets:clobber

$ rails assets:clobber

アセットのコンパイル環境の読み込み

説明

アセットのコンパイル環境の読み込み

使い方

$ rails assets:environment

$ rails assets:environment

指定されたすべてのアセットをコンパイル

説明

config.assets.precompileで指定されたすべてのアセットをコンパイル

使い方

$ rails assets:precompile

$ rails assets:precompile

プラグインをインストール

説明

プラグインをインストール

使い方

$ rails plugin new パス [オプション]

オプション

オプション 説明 デフォルト値
–skip-namespace namespaceの生成をスキップ  
–skip-collision-check コリジョンチェックをスキップ  
-r, –ruby=PATH Rubyのインストールパス  
-m, –template=TEMPLATE プラグインのテンプレートへのパス  
-d, –database=DATABASE データベースの種類 sqlite3
-G, –skip-git .gitignoreファイルの生成をスキップ  
–skip-keeps .keepファイルの生成をスキップ  
-M, –skip-action-mailer Action Mailerファイルの生成をスキップ  
–skip-action-mailbox Action MailboxのGemをスキップ  
–skip-action-text Action TextのGemをスキップ  
-O, –skip-active-record Active Recordファイルの生成をスキップ  
–skip-active-job Active Jobをスキップ  
–skip-active-storage Active Storageファイルの生成をスキップ  
-C, –skip-action-cable Action Cableファイルの生成をスキップ  
-S, –skip-sprockets Sprocketsファイルの生成をスキップ  
-J, –skip-javascript JavaScriptファイルの生成をスキップ true
–skip-hotwire Hotwireの統合をスキップ  
–skip-jbuilder jbuilderのGemをスキップ  
-T, –skip-test testファイルの生成をスキップ  
–skip-system-test システムテストファイルの生成をスキップ  
–skip-bootsnap bootsnapのGem をスキップ  
–dev githubリポジトリ上の自分のコードから作成  
–edge githubリポジトリ上の最新のコードから生成  
–master, –main RailsのメインブランチのGemfileでアプリケーションをセットアップ  
–rc=RC railsコマンドの追加の構成オプションを含むファイルへのパス  
–no-rc .railsrcファイルからの追加のロードをスキップ  
–dummy-path=DUMMY_PATH 与えられたパスにダミーのアプリケーションを作成 test/dummy
–full テスト用のRailsアプリケーションがバンドルされたRailsエンジンを生成  
–mountable マウント可能な孤立したエンジンを生成  
–skip-gemspec gemspecファイルの生成をスキップ  
–skip-gemfile-entry プラグインを作成する場合にGemfileへのエントリ追加をスキップ  
–api APIのみのアプリケーションを生成  
-f, –force ファイルが存在する場合に上書き  
-p, –pretend ドライラン  
-q, –quiet 進捗情報を非表示  
-s, –skip 既に存在するファイルはスキップ  
-h, –help ヘルプ  
-v, –version バージョンを表示  

$ rails plugin new ~/Code/Ruby/blog

ローカルでサーバを起動

説明

Railsに標準で付随しているPumaをサーバとして起動

使い方

$ rails server -u [Rackサーバーを指定(thin/puma/webrick)] [オプション]

短縮形

$ rails s [オプション]

オプション

オプション 説明 初期値
-e, –environment=name 環境(test/development/production)を指定してサーバを起動 development
-p, –port=port サーバを起動するときのポート番号を指定 3000
-b, –binding=ip バインドするIPアドレスを指定 0.0.0.0
-c, –config=file rackupファイルを指定 config.ru
-d, –daemon デーモンとしてサーバを起動  
-u, –using=name Rackサーバーを指定  
-P, –pid=pid PIDファイルを指定 tmp/pids/server.pid
-C, –dev-caching development環境でキャッシュするか  
–early-hints HTTP/2のアーリーヒンティングを有効  
–log-to-stdout 標準出力にログを出力するか  
-h, –help ヘルプを表示  

開発用WEBサーバを起動

$ rails server

ポート番号を変更

$ rails server --p=3001

デーモンとして起動

$ rails server --d

本番として起動

$ rails server -e production

短縮形

$ rails s

コンソールを起動

説明

コンソールを起動
コマンドラインでRailsアプリケーションとやるとりが可能

使い方

$ rails console [オプション]

オプション

オプション 説明
-e, –environment=ENVIRONMENT 環境
-s, -sandbox 終了時にデータベースに関する変更をロールバック
-h, –help ヘルプ

環境

環境 説明
test テスト環境
development 開発環境
production 本番環境

コンソール起動

$ rails console
Loading development environment (Rails x.x.x)
irb(main):001:0>

production環境でコンソール起動

$ rails console production
Loading production environment (Rails x.x.x)
irb(main):001:0>

コンソールでSQLの出力を表示

$ rails console
irb(main):001:0> ActiveRecord::Base.logger = Logger.new(STDOUT)

コンソール実行中にルーティングを取得

>> app.root_path
# "/"

コンソール実行中にヘルパーを取得

>> helper.hoge

データを変更することなく実行

$ rails console --sandbox

Rails環境で動かすバッチ処理

説明

Rails環境で動かすバッチ処理

使い方

$ rails runner 実行するコード [オプション]

短縮形

$ rails r 実行するコード [オプション]

オプション

オプション 説明
-e 環境((test/development/production)を指定
-h, –help ヘルプ

Rails環境で動かすバッチ処理

$ rails runner "Model.hoge_method"

Rubyファイルを実行

$ rails runner path/to/filename.rb

標準入力から読み込んだRubyスクリプトを実行

$ rails runner -

Railsアプリケーションの色々な情報を出力

説明

Railsアプリケーションのバージョン情報や各ディレクトリのライブラリ名などを出力

使い方

$ rails about

$ rails about

Railsのバージョン

説明

Railsのバージョン

使い方

$ rails version

$ rails version

コードからコメントの部分を抽出

説明

コードからコメントの部分を抽出

使い方

$ rails notes [オプション]

オプション

名前 説明
-a, –annotations=one two three 特定のアノテーションによるフィルタリング
-h, –help ヘルプ

$ rails notes

定義されている全ルーティングを出力

説明

定義されている全ルーティングを出力

使い方

$ rails routes [オプション]

オプション

名前 説明
-c, –controller=CONTROLLER 特定のコントローラでフィルタリング
-g, –grep=GREP 特定のパターンでルートを検索
-h, –help ヘルプ

$ rails routes

Eximからの受信メールをアクションメールボックスにリレー

説明

Eximからの受信メールをアクションメールボックス(Action Mailbox)にリレー

使い方

$ rails action_mailbox:ingress:exim

$ rails action_mailbox:ingress:exim

Postfixからの受信メールをアクションメールボックスにリレー

説明

Postfixからの受信メールをアクションメールボックス(Action Mailbox)にリレー

使い方

$ rails action_mailbox:ingress:postfix

$ rails action_mailbox:ingress:postfix

Qmailからの受信メールをアクションメールボックスにリレー

説明

Qmailからの受信メールをアクションメールボックス(Action Mailbox)にリレー

使い方

$ rails action_mailbox:ingress:qmail

$ rails action_mailbox:ingress:qmail

アクションメールボックスとその依存関係をインストール

説明

アクションメールボックス(Action Mailbox)とその依存関係をインストール

使い方

$ rails action_mailbox:install

$ rails action_mailbox:install

アクションメールボックスからアプリケーションへのマイグレーションのコピー

説明

アクションメールボックス(Action Mailbox)からアプリケーションへのマイグレーションのコピー

使い方

$ rails action_mailbox:install:migrations

$ rails action_mailbox:install:migrations

マイグレーション、スタイルシート、JavaScriptの各ファイルをコピー

説明

マイグレーション、スタイルシート、JavaScriptの各ファイルをコピー

使い方

$ rails action_text:install

$ rails action_text:install

マイグレーションをアクションテキストからアプリケーションにコピー

説明

マイグレーションをaction_textからアプリケーションにコピー

使い方

$ rails action_text:install:migrations

$ rails action_text:install:migrations

アクティブストレージのセットアップ

説明

アクティブストレージ(Active Storage)のセットアップ

使い方

$ rails active_storage:install

$ rails active_storage:install

テンプレートを適用

説明

LOCATION=(/path/to/template)またはURLで指定されたテンプレートを適用

使い方

$ rails app:template

$ rails app:template

対話形式でアップデート

説明

設定ファイルやその他の初期生成ファイルを対話形式でアップデート

使い方

$ rails app:update

$ rails app:update

直接のテンプレートの依存関係を調査

説明

直接のテンプレートの依存関係を調査

使い方

$ rails cache_digests:dependencies

$ rails cache_digests:dependencies

ネストしたテンプレートの依存関係を調査

説明

ネストしたテンプレートの依存関係を調査

使い方

$ rails cache_digests:nested_dependencies

$ rails cache_digests:nested_dependencies

development環境のキャッシュのオンオフ

説明

development環境のキャッシュのオンオフ

使い方

$ rails dev:cache

$ rails dev:cache

アプリケーションにImportmapを設定

説明

アプリケーションにImportmapを設定

使い方

$ rails importmap:install

$ rails importmap:install

イニシャライザをパスとともに起動順に表示

説明

定義されているすべてのイニシャライザをパスとともに起動順に表示

使い方

$ rails initializers [オプション]

オプション

名前 説明
-e, –environment=ENVIRONMENT 実行する環境(test/development/production)

$ rails initializers

logディレクトリ以下にあるすべてのlogファイルを0バイトに切り詰める

説明

logディレクトリ以下にあるすべての*.logファイルを0バイトに切り詰める

使い方

$ rails log:clear

$ rails log:clear

Rackのミドルウェアスタックを出力

説明

Rackのミドルウェアスタックを出力

使い方

$ rails middleware

$ rails middleware

アプリケーションを再起動

説明

アプリケーションを再起動

使い方

$ rails restart

$ rails restart

暗号化された安全な秘密鍵を生成

説明

暗号化された安全な秘密鍵を生成
通常はクッキーセッションの秘密を生成するために使用

使い方

$ rails secret

$ rails secret

アプリケーションの統計情報

説明

アプリケーションの統計情報

使い方

$ rails stats

$ rails stats

Stimulusをアプリケーションにインストール

説明

Stimulusをアプリケーションにインストール

使い方

$ rails stimulus:install

$ rails stimulus:install

importmap-railsが動作しているアプリケーションにStimulusをインストール

説明

importmap-railsが動作しているアプリケーションにStimulusをインストール

使い方

$ rails stimulus:install:importmap

$ rails stimulus:install:importmap

アプリケーションが動いているノードにStimulusをインストール

説明

アプリケーションが動いているノードにStimulusをインストール

使い方

$ rails stimulus:install:node

$ rails stimulus:install:node

テストの実行

説明

テストの実行とデータベースのリセット

使い方

$ rails test [オプション] [ファイルかディレクトリ..]

オプション

名前 説明
-h, –help ヘルプを表示
–no-plugins ミニテストプラグインの自動読み込みをバイパス
-s, –seed SEED ランダムシードを設定
-v, –verbose 進行状況を表示
-n, –name PATTERN 実行されるフィルター
–exclude PATTERN 除外されるフィルター

ファイルを指定してテスト

$ rails test test/models/article_test.rb

ディレクトリを指定してテスト

$ rails test test/models

ファイルに行番号で単一テスト

$ rails test test/models/user_test.rb:27

複数指定

$ rails test test/controllers test/integration/login_test.rb

テストの実行とデータベースのリセット

説明

テストの実行とDBリセット

使い方

$ rails test:db

$ rails test:db

システムテストを含むすべてのテストの実行

説明

システムテストを含むすべてのテストの実行

使い方

$ rails test:all

$ rails test:all

全てのタイムゾーンの一覧表示

説明

全てのタイムゾーンの一覧表示

使い方

$ rails time:zones

$ rails time:zones

tmpディレクトリをクリア

説明

tmpディレクトリからキャッシュ、ソケット、スクリーンショットファイルをクリア

使い方

$ rails tmp:clear

$ rails tmp:clear

キャッシュやソケットなどをtmpディレクトリに作成

説明

キャッシュ、ソケットなどをtmpディレクトリに作成

使い方

$ rails tmp:create

$ rails tmp:create

Turboをアプリケーションにインストール

説明

Turboをアプリケーションにインストール

使い方

$ rails turbo:install

$ rails turbo:install

アセットパイプラインでTurboをアプリケーションにインストール

説明

アセットパイプラインでTurboをアプリケーションにインストール

使い方

$ rails turbo:install:importmap

$ rails turbo:install:importmap

webpackerでTurboをアプリケーションにインストール

説明

webpackerでTurboをアプリケーションにインストール

使い方

$ rails turbo:install:node

$ rails turbo:install:node

Redisのスイッチを入れ開発で使用

説明

Redisのスイッチを入れ開発で使用

使い方

$ rails turbo:install:redis

$ rails turbo:install:redis

Yarnで指定されたすべてのJavaScriptの依存関係をインストール

説明

Yarnで指定されたすべてのJavaScriptの依存関係をインストール

使い方

$ rails yarn:install

$ rails yarn:install

Zeitwerkの互換性についてプロジェクト構造をチェック

説明

Zeitwerkの互換性についてプロジェクト構造をチェック

使い方

$ rails zeitwerk:check

$ rails zeitwerk:check