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

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

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

RubyMine がプロジェクトを分析してソースを調べ、利用可能なファイル、クラスやメソッドの定義などの情報を収集します。 これは、 コード補完や ナビゲーションなどのコードインサイト機能に必要です。
Ruby インタープリターを選択し、gems をインストールする
プロジェクトを開いた後は、必要な Ruby インタープリターが構成されていることを確認し、プロジェクトの Gemfile で指定されている依存関係をインストールする必要があります。
IDE はインストールされているすべての Ruby インタープリターを検出し、プロジェクトに基づいて適切なオプションを選択します。 自動的に選択された Ruby インタープリターとプロジェクト設定に競合がある場合、またはインタープリターが検出されなかった場合は、 手動で設定できます。
gems をインストールする
Gemfile で指定されている gems をインストールします。 RubyMine では、 Bundler を使って gem を管理できます。 Ctrl を 2 回押して、 bundle install と入力し始めます。 次に、リストから
bundle installコマンドを選択し、 Enter を押します。
RubyMine がすべての gem をインストールするまで待ちます。

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

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

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

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

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

users_controller.rb ファイルが開き、 破壊 アクションの定義にキャレットが配置されます。
コードの編集
RubyMine は、エディターで利用できる複数のコード編集機能を提供し、開発プロセスを高速化できます。 これらには、 コード補完、 リファクタリング、 コードインスペクションなどが含まれます。
コード補完
RubyMine は、クラス、メソッド、キーワードなどの名前を補完するのに役立ちます。 コード補完を呼び出すと、RubyMine がコンテキストを分析し、現在のキャレット位置で使える選択肢を提案します。
たとえば、 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 ブロックに変換されます。

コードのリファクタリング
リファクタリングは、ソースコードを変更したり維持したりするのを容易にするために、ソースコードを変更するプロセスですが、動作を変更することはありません。 RubyMine で利用可能なリファクタリング機能をいくつか見てみましょう。
名前変更リファクタリングを使用すると、クラス、メソッド、ファイル、変数、パラメーターの名前を変更し、コード内のそれらへのすべての参照をそれに応じて修正できます。 user.rb ファイルを開き、 before_save コールバックで生成された downcase_email メソッドまで下にスクロールします。 このメソッドの横にキャレットを置き、 Ctrl+Shift+I を押してその定義を表示します。

Escape を押してから、 Ctrl+Alt+Shift+T を押します。 さまざまなリファクタリングを提案する リファクタリング ポップアップで 名前変更 を選択します。

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

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

リファクタリング をクリックして、すべての場所でメソッドの名前を変更します。
コードの整形
RubyMine では、 コードスタイルの要件に合わせてソースコードを整形できます。
user.rb ファイルのコードを再フォーマットしましょう。 このファイルを開いて Ctrl+Alt+L を押してください。
RubyMine はファイル全体を整形し、変更された行数を表示します。
コードの解析
このパートでは、静的コード解析を実行して問題点を検出します。
RubyMine は複数種類のインスペクションに対応し、IDE 内で RuboCopの違反も表示できます。 RuboCop インスペクションは、デフォルトで RubyMine で有効化されており、プロジェクトインタープリターに RuboCop gem を追加する必要があります。 .
RuboCop gem を追加してインストールする
アプリケーションで使用される gems のリストを含む Gemfile を開きます。
group :development do内にgem 'rubocop', require: falseを追加します。追加された行にカーソルを合わせ、 「bundler」を使用して、不足している gem をインストールする をクリックします。
RuboCop を使用する
Gemfile ファイルで、 active_storage_validations gem にマウスを合わせます。

RubyMine は、gem をアルファベット順に並べ替えるように促す Rubocop 通知を表示します(OrderedGems を参照)。
通知で、 [Bundler/Ordered Gems] の違反を修正する をクリックします。
プロジェクト全体をチェックして、すべての警告をまとめたレポートとして表示することもできます。 このためには、メインメニューで を選択します。 呼び出されたダイアログで、必要なインスペクションスコープを指定できます。

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

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

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

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

失敗したテストの再実行
ここで、 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 アプリケーションを実行するには、 Ctrl を 2 回押して、 sample_rails_app と入力し始めます。 リストから sample_rails_app_8th_ed 構成を選択し、 Enter を押します。

RubyMine はアプリケーションを実行するための準備プロセスを表示します。

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

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

デバッグを開始するには、 Ctrl を 2 回押して、 sample_rails_app と入力し始めます。 リストから sample_rails_app_8th_ed 構成を選択し、 Shift キーを押し続けます(ダイアログのタイトルが Debug に変わります)、そして Enter を押してください。
Debug ツールウィンドウには、アプリケーションの出力が表示されます。

ローカルマシンで Web ブラウザーを開き、 http://127.0 .0.1:3000 に移動します。

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

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

スレッド & 変数 ペインには、アプリケーションスレッドと対応するコールスタックが表示されます。 この例では、 create メソッドが スレッド 1 で呼び出されます。 ペインの右側では、現在のコンテキストで使用可能な変数を調べることができます。
user_params 変数をリストに追加しましょう。 ペインの右側で、検索フィールドに user_params と入力し、 をクリックします。

次に、この変数の横にある アイコンをクリックし、同様に @パラメーター 変数を展開します。 サインアップ フォームで指定されたユーザー資格情報が表示されます。
ブレークポイントに達したら、コードをステップ実行できます。
ステップオーバー
ステップオーバーは、現在のスコープ内で次の行(例えば次の行)に進みますが、その途中でメソッドコールには入らずに進みます。
ユーザー オブジェクトはまだ作成されておらず、 @ユーザー 変数は初期化されていません (nil と同等)。

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

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

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