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=バージョン番号 オプション]
実行の流れ
- rails db:migrateを実行
- schema_migrationsテーブルを調べ、存在しなければ作成
- db/migrateディレクトリ内のすべてのマイグレーションファイルを調べる
- データベースの現在のバージョンと異なるバージョンがあった場合、データベースに適応
- 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