インポートした Rails プロジェクトを使い始める
IntelliJ IDEA は、コードの作成とデバッグから完成したアプリケーションのテストとデプロイまで、Ruby/Rails プロジェクト開発のあらゆる側面で生産性を高めるのに役立つ 統合開発環境 (IDE) です。 IntelliJ IDEA は、macOS、Windows、Linux などのさまざまなプラットフォームで利用できます。
このチュートリアルでは、 Ruby on Rails チュートリアル(英語)用に作成されたサンプルアプリケーションの フォーク(英語)を使用して、IntelliJ IDEA の主な機能を紹介します。 このチュートリアルを始める前に、以下の手順を実行してください。
Git(英語) をインストールします。
プラットフォームに Ruby ディストリビューションをインストールします。
Node.js(英語) および Yarn(英語) をインストールします。
macOS にインストールされた IntelliJ IDEA を使用してすべての手順を実行します。
プロジェクトのクローンを作成する
まず、サンプルアプリケーションを含むリポジトリをクローンする必要があります。
IntelliJ IDEA を実行し、 'ようこそ' 画面の リポジトリのクローン をクリックします。

リポジトリのクローン ダイアログで、次の操作を行います。

バージョン管理 フィールドで Git が選択されていることを確認してください。
次のアドレスを URL フィールドに挿入します。
https://github.com/JetBrains/sample_rails_app_7th_ed.git
クローン ボタンをクリックします。 IntelliJ IDEA は、クローン作成プロセスを示す進行状況バーを表示します。
リポジトリのクローンを作成した後、IntelliJ IDEA はプロジェクトを開き、 プロジェクト解析プロセスを開始します。 ステータスバーで進捗状況を確認できます。

IntelliJ IDEA は、プロジェクトを分析してソースを調査し、使用可能なファイル、クラスおよびメソッドの定義などに関する情報を収集します。 これは、 コード補完や ナビゲーションなどのコードインサイト機能に必要です。
Ruby インタープリターを選択し、gems をインストールする。
プロジェクトを開いた後、必要な Ruby インタープリター が設定されていることを確認し、プロジェクトの Gemfile で指定された依存関係をインストールする必要があります。
IDE はインストールされているすべての Ruby インタープリターを検出し、プロジェクトに基づいて適切なオプションを選択します。 自動的に選択された Ruby インタープリターとプロジェクトの設定に競合がある場合、またはインタープリターが検出されなかった場合、 手動で設定することができます。
gems をインストールする。
Gemfile で指定された gems をインストールします。 IntelliJ IDEA を使用すると、 Bundler(英語) を使用して gems を管理できます。 Ctrl を 2 回押して、 「bundle install」と入力し始めます。 次に、リストから
bundle installコマンドを選択し、 Enter を押します。
(オプション) デフォルトでは、現在の プロジェクトインタープリターに Gemfile.lock で指定された必要な Bundler バージョンがない場合、IntelliJ IDEA によってインストールされます。
バンドルインストール ダイアログで、次の引数を追加します。
--without production次に、 実行 をクリックします。

IntelliJ IDEA がすべて gems をインストールするまで待ちます。

マイグレーションの実行
Rails アプリケーションを実行する前に、データベースを移行する必要があります。
Ctrl を 2 回押して、
db:migrateと入力します。 ドロップダウンで rake db: マイグレーション を選択し、 Enter を押します。
呼び出された 'db:migrate' を実行する ダイアログでデフォルト設定のままにして、 OK をクリックします。

これにより、 db フォルダーに development.sqlite3 データベースが作成されます。
最初のステップで説明したように、
rake db: マイグレーションをもう一度実行します。 今回は、 'db:migrate' を実行する ダイアログで テストするように 環境 オプションを設定し、 OK をクリックします。 作成された test.sqlite3 データベースは、テストの実行に使用されます。
プロジェクト内を移動する
IntelliJ IDEA は、あらゆるサイズのプロジェクトを探索するための豊富なナビゲーション機能を提供します。 ファイル間を移動したり、宣言に移動したり、任意のタイプのエンティティを検索したりできます。
プロジェクトビュー
IDE の左側にあるプロジェクトビュー(Alt+1 )には、プロジェクトの構造が表示されます。 これを使用して、プロジェクト内の任意のファイルを開いたり、新しいファイルを作成したりできます。

宣言に移動
宣言に移動を使用すると、任意のシンボルの使用箇所からシンボルの宣言に移動できます。 この機能の動作を確認するには、 Ctrl+Shift+N を押し、 users_controller の入力を開始し、 users_controller.rb ファイルを選択して Enter を押します。

開いた users_controller.rb ファイルで、キャレットを ユーザー クラスの横に置き、 Ctrl+B を押します。
user.rb ファイルのクラス宣言に移動します。
プロジェクトエンティティだけでなく、外部ライブラリ (この場合は gems) 内の定義にも移動できることに注意してください。 たとえば、 Ctrl を押したまま、 has_many メソッドの上にマウスを置きます。 メソッドがハイパーリンクに変わったら、キーを放さずにクリックします。
IntelliJ IDEA は ActiveRecord Rails モジュール内のメソッド定義を開きます。
使用箇所の検索
使用箇所の検索アクションを試してみましょう。 users_controller.rb ファイルで、 編集 メソッドまで下にスクロールし、その横にキャレットを置き、 Alt+F7 を押します。 検索 ウィンドウでは、このアクションが使用されている場所を探索できます。

Rails エンティティ間を移動する
コントローラーなどの特定の Rails エンティティで作業しているときは、関連するビュー、モデル、テスト、ヘルパーに移動できます。 編集 メソッドの横にキャレットを置き、 Ctrl+Alt+Home を押して、 表示 を選択し、 Enter を押します。 IntelliJ IDEA は、対応するビューを含む edit.html.erb ファイルを開きます。
ビュー内で同じショートカットを使用するか、エディターのガターの アイコンを使用して、対応するアクションにすばやく移動できます。
どこでも検索
次の IntelliJ IDEA 機能を使用すると、ファイル、クラス、シンボル、オプションを検索し、必要なエンティティに移動することができます。
UsersController 内で destroy アクションを見つけてみましょう。 Shift を 2 回押して、 destroy と入力し始めます。 IntelliJ IDEA は、クエリが見つかったすべての結果をリストします。 UsersController から destroy アクションを選択し、 Enter を押します。

users_controller.rb ファイルが開き、 destroy アクションの定義にキャレットが配置されます。
コードの編集
IntelliJ IDEA は、エディターで使用可能な複数のコード編集機能を提供し、開発プロセスをスピードアップできるようにします。 これらには、 コード補完、 リファクタリング、 コードインスペクションなどが含まれます。
コード補完
IntelliJ IDEA は、クラス、メソッド、キーワードなどの名前を完成させるのに役立ちます。 コード補完を呼び出すと、IntelliJ IDEA はコンテキストを分析し、現在のキャレット位置に適用できる選択肢を提案します。
たとえば、 users_controller.rb ファイルを開き、 UsersController クラスで宣言された index メソッドに移動します。 メソッド内に次のコードを入力し、「ドット」と入力します。
ユーザー クラスは ApplicationRecord モジュールから継承されるため、エディターには継承されたすべてのメンバーが表示されます。
その後、 first の入力を開始してリストをフィルター処理し、 Querying モジュールから対応するメンバーを検索し、 Enter を押します。
インテンション
インテンションは、コードスタイルを改善するためのステートメントの変換、ロケール辞書への文字列の追加、言語インジェクションの使用など、さまざまなコード変更を迅速に適用できます。
インテンションの動作を確認するには、 user.rb ファイルを開き、複数行の三項演算子 ?: を使用する User.digest メソッドまでスクロールします。 Ruby スタイルガイド(英語)によると、このような演算子は if/then/else/end ブロックに置き換えるのが望ましいとされています。 これを行うには、この三項演算子 (たとえば、ActiveModel の隣) にキャレットを置き、 Alt+Enter を押します。 Enter を押すと、三項演算子が if/then/else/end ブロックに変換されます。
コードのリファクタリング
リファクタリングは、ソースコードを変更したり維持したりするのを容易にするために、ソースコードを変更するプロセスですが、動作を変更することはありません。 IntelliJ IDEA で利用できるリファクタリング機能をいくつか見てみましょう。
名前変更リファクタリングを使用すると、クラス、メソッド、ファイル、変数、パラメーターの名前を変更し、コード内のそれらへのすべての参照をそれに応じて修正できます。 user.rb ファイルを開き、 before_save コールバックで生成された downcase_email メソッドまで下にスクロールします。 このメソッドの横にキャレットを置き、 Ctrl+Shift+I を押してその定義を表示します。
Escape を押してから、 Ctrl+Alt+Shift+T を押します。 さまざまなリファクタリングを提案する リファクタリング ポップアップで 名前変更 を選択します。

名前変更 ダイアログで、新しいメソッド名(この場合は lowercase_email )を指定して、 リファクタリング実行 をクリックします。

リファクタリングプレビュー ウィンドウには、名前を変更したメソッドへの参照がすべて表示されます。

リファクタリング をクリックして、すべての場所でメソッドの名前を変更します。
コードの整形
IntelliJ IDEA を使用すると、コードスタイルの要件を満たすようにソースコードを再フォーマットできます。
user.rb ファイルのコードを再フォーマットしましょう。 このファイルを開いて Ctrl+Alt+L を押してください。
IntelliJ IDEA はファイル全体を再フォーマットし、いくつかの変更された行を表示します。
コードの解析
この部分では、静的コード分析を実行し、問題を検出します。
IntelliJ IDEA は複数のインスペクションタイプをサポートし、さらに IDE 内で RuboCop(英語) 違反を表示できます。 RuboCop インスペクションは IntelliJ IDEA でデフォルトで有効になっており、モジュール SDK に RuboCop gem(英語) を追加する必要があります。 この gem がインストールされていない場合、IntelliJ IDEA はこれを実行することを提案します。

アプリケーションが使用する gems のリストを含む Gemfile を開いてみましょう。 active_storage_validations gem に表示されている警告にマウスを合わせます。

IntelliJ IDEA は、gems をアルファベット順に並べる必要があることを通知する Rubocop メッセージが表示されます (OrderedGems(英語) を参照)。
active_storage_validations gem の横にキャレットを置き、 Alt+Enter を押します。 エディターは、gems の誤った順序に関連するすべての問題を修正することを提案します。 これを行うには、 Enter を押します。
プロジェクト全体をチェックし、すべての警告を 1 つのレポートに表示することもできます。 これを行うには、メインメニューで を選択します。 呼び出されたダイアログで、必要なインスペクションスコープを指定できます。

プロジェクト全体 オプションを終了し、 分析 をクリックします。 インスペクションの結果ウィンドウには、プロジェクト全体の警告が表示されます。

このレポートを移動して、特定の警告を修正または抑制することができます。
テストの実行
IntelliJ IDEAでは、Minitest、RSpec、Cucumberなどのさまざまな テストフレームワークを使用できます。
すべてのテストを実行
プロジェクトの test フォルダーには Minitest テストが含まれています。 すべてのテストを実行するには、 Alt+1 を押してプロジェクトビューを開きます。 次に、 test フォルダーを右クリックし、コンテキストメニューから を選択します。

IntelliJ IDEA が実行され、テスト結果が 実行 ツールウィンドウに表示されます。
特定のテストを実行する
次に、特定のテストを実行する方法を見てみましょう。 users_controller_test.rb ファイルを開き、 should redirect index when not logged in テストまで下にスクロールして、このテストの横にある左のガターにある 実行 ボタンをクリックします。

呼び出されたメニューで、 「ミニテスト」を実行する: テストすべき _...」 を選択します。 IntelliJ IDEA はこのテストの結果を表示します。

失敗したテストの再実行
ここで、 users_controller_test.rb に戻って 2 つのテストを中断します。 should get new および should redirect index when not logged in テストでは、 get signup_path および get users_path の行をコメントアウトします。 これを行うには、これらの行を選択し、 Ctrl+/ ショートカットを使用します。

すべてのテストを実行 の説明に従って、すべてのテストを再度実行します。 これらのテストが失敗したことがわかります。

現在開いている users_controller_test.rb ファイルで、同じ行 get signup_path と get users_path のコメントを解除して、これらのテストを修正しましょう。 同じ Ctrl+/ ショートカットを使用します。 これで、 ボタンを使用して、失敗したテストのみを再実行できるようになりました。
これでアプリケーションを実行する準備が整いました。
実行 / デバッグ構成を作成する
Rails アプリケーションを実行してデバッグするには、対応する Rails 構成を作成する必要があります。 Ctrl+Shift+A を押して、 編集構成の入力を開始します。 実行構成の編集 を選択し、 Enter を押します。

呼び出された 実行 / デバッグ構成 ダイアログで をクリックし、 Rails と入力してリストから選択します。

作成した構成名を 開発: sample_rails_app に変更し、 OK をクリックします。

Rails 実行 / デバッグ構成の詳細については、 RubyMine のドキュメントを参照してください。
アプリケーションの実行
Rails アプリケーションを実行するには、 Ctrl を 2 回押して、 sample_rails_app と入力し始めます。 リストから sample_rails_app_7th_ed 構成を選択し、 Enter を押します。

IntelliJ IDEA は、実行するアプリケーションを準備するプロセスを示します。

ブラウザーで http://127.0.0.1:3000 (または http://localhost:3000 )を開き、動作するアプリケーションを確認します。

アプリケーションのデバッグ
IntelliJ IDEA の主な機能の 1 つはデバッグサポートです。 デバッガーは、実行中のアプリケーションの状態を調べるさまざまな方法を提供します。 コードをステップ実行して変数の値をチェックしたり、変数のウォッチを設定して値が変化するかどうかを確認したりできます。
ブレークポイントを設定してデバッグを開始する
まず、 users_controller.rb ファイルを開きます。 create メソッド内で、新しいユーザーが作成される行の隣にブレークポイントを設定します。

デバッグを開始するには、 Ctrl を 2 回押して、 sample_rails_app と入力し始めます。 リストから sample_rails_app_7th_ed 構成を選択し、 Shift キーを押したまま (ダイアログタイトルが デバッグ に変わります)、 Enter を押します。

デバッグに必要な debase(英語) と ruby-debug-ide(英語) gems がまだインストールされていない場合は、IntelliJ IDEA はそれらをインストールすることを提案します。

gems をインストールすると、 デバッグ ツールウィンドウにアプリケーションの出力が表示されます。

ローカルマシンでウェブブラウザーを開き、 http://127.0 .0.1:3000 にアクセスします。

今すぐサインアップ ! ボタンをクリックします。 サインアップ ページで、資格情報を入力し、 アカウントを作る をクリックします。

プログラムはブレークポイントに達すると停止します。
変数を調べる
これで、アプリケーションの状態と変数の値を調べることができます。

スレッドと変数 ペインには、アプリケーションスレッドと対応するコールスタックが表示されます。 この例では、 create メソッドが スレッド 1 で呼び出されます。 ペインの右側では、現在のコンテキストで使用可能な変数を調べることができます。
user_params 変数をリストに追加しましょう。 ペインの右側で、検索フィールドに user_params と入力し、 をクリックします。
次に、この変数の横にある アイコンをクリックし、同様に @parameters 変数を展開します。 サインアップ フォームで指定されたユーザー資格情報が表示されます。
ブレークポイントに達すると、コードをステップ実行できます。
ステップオーバー
ステップオーバーは、現在のスコープ内の次の行に進みます(たとえば、次の行に移動します)。途中でメソッド呼び出しに降下することはありません。
ユーザー オブジェクトはまだ作成されておらず、 @user 変数は初期化されていません (nil と同等)。

F8 を押すか、 デバッグ ツールウィンドウのツールバーで をクリックします。 デバッガーは次の行である
if ステートメントに進み、 @user 変数が初期化されます。

アイコンを使用して、 @user プロパティを展開して調べます。
ステップイン
ステップインは、デバッガーを現在の行のメソッド呼び出しまたはブロックまで移動させ、追跡します。 メソッド呼び出しまたはブロックが複数ある場合は、必要なターゲットを選択できます。
をクリックしてプログラムの実行を再開します。 再度ブラウザーにアクセスし、 サインアップ フォームで別のユーザーを作成します。 スクリプトは、ユーザーが作成される行に到達すると停止します。

F7 を押すか、 ボタンをクリックします。 エディターは
user_params メソッドにフォーカスを設定します。 矢印キーまたは Tab を使用して、ステップインするメソッド (この例では new または user_params) を選択できます。 user_params を選択し、 Enter を押します。 プログラム実行は user_params メソッド定義に移動します。
もう一度 F7 を押すと、デバッガーは StrongParameters(英語) モジュールの params メソッドと require メソッドのどちらを選択するかを提案します。
コンソールでデバッグする
デバッガーには コンソール タブがあり、IRB のようなコンソールでデバッグされたアプリケーションと対話できます。
コンソールに user_params と入力し、対応する変数を選択して、 Enter を押します。
コンソール ウィンドウに変数の値が表示されます。