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_7th_ed.git
クローンボタンをクリックします。RubyMine は、クローン作成プロセスを示す進行状況バーを表示します。
リポジトリのクローンを作成した後、RubyMine はプロジェクトを開き、インデックス作成プロセスを開始します。ステータスバーで進捗状況を確認できます。
RubyMine は、プロジェクトのインデックスを作成してソースを分析し、使用可能なファイル、クラスおよびメソッドの定義などに関する情報を収集します。これは、コード補完やナビゲーションなどのコードインサイト機能に必要です。
Ruby インタープリターを選択し、gems をインストールする
プロジェクトを開いた後、必要な Ruby インタープリターを選択し、プロジェクトの Gemfile で指定された依存関係をインストールする必要があります。
Ctrl+Alt+S を押して環境設定ダイアログを開きます。
言語 & フレームワーク | Ruby インタープリターページに移動し、必要なインタープリターを選択します。
OK をクリックします。
次に、Gemfile で指定された gems をインストールしましょう。RubyMine を使用すると、Bundler(英語) を使用して gems を管理できます。Ctrl を 2 回押して、「bundle install」と入力し始めます。次に、リストから
bundle install
コマンドを選択し、Enter を押します。(オプション)現在のプロジェクトインタープリターに Gemfile.lock で指定された必要な Bundler バージョンがない場合、RubyMine はそれをインストールすることを提案します。
バンドルインストールダイアログで、次の引数を追加します。
--without production
次に、実行をクリックします。
RubyMine がすべて gems をインストールするまで待ちます。
マイグレーションの実行
Rails アプリケーションを実行する前に、データベースを移行する必要があります。
Ctrl を 2 回押して、
db:migrate
と入力します。ドロップダウンで rake db: マイグレーションを選択し、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 ファイルで、キャレットを User
クラスの横に置き、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
内で destroy
アクションを見つけてみましょう。Shift を 2 回押して、destroy と入力し始めます。RubyMine は、クエリが見つかったすべての結果をリストします。UsersController から破壊アクションを選択し、Enter を押します。

users_controller.rb ファイルが開き、destroy
アクションの定義にキャレットが配置されます。
コードの編集
RubyMine は、エディターで使用可能な複数のコード編集機能を提供し、開発プロセスをスピードアップできるようにします。これらには、コード補完、リファクタリング、コードインスペクションなどが含まれます。
コード補完
RubyMine は、クラス、メソッド、キーワードなどの名前を完成させるのに役立ちます。コード補完を呼び出すと、RubyMine はコンテキストを分析し、現在のキャレット位置に適用できる選択肢を提案します。
たとえば、users_controller.rb ファイルを開き、UsersController
クラスで宣言された index
メソッドに移動します。メソッド内に次のコードを入力し、「ドット」と入力します。
User
クラスは 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(英語) を追加する必要があります。この gem がインストールされていない場合、RubyMine はこれを実行することを提案します。

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

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

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

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

呼び出されたメニューで、「ミニテスト」を実行します: テストすべき _...」を選択します。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_7th_ed 構成を選択し、Enter を押します。

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

動作しているアプリケーションを確認するには、Web サーバーで使用されている 0.0.0.0:3000 アドレスに移動します。

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

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

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

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

ローカルマシンでブラウザーを開き、アプリケーションアドレス 0.0.0.0:3000 を指定します。

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

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

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

Ruby 開発環境をセットアップする
前提条件の依存関係をインストールする:RubyMine は、Ruby(Ruby MRI)のリファレンス実装と、JRuby や TruffleRuby などの代替実装をサポートしています。Ruby インタープリターをインストールする前に、Ruby をコンパイルするために必要な依存関係をマシンにインストールする必要があります。例: オペレーティングシステムによっては、これらの依存関係に次のツールとライブラリが含まれる場合があります。Ubuntu:build-essential、libssl-dev な...

RubyMine をインストールする
RubyMine は、Windows、macOS、Linux で一貫したエクスペリエンスを提供するクロスプラットフォーム IDE です。システム要件:RAM2 GB の空き RAM8 GB の総システム RAMCPU 最新の CPU マルチコア CPU。RubyMine は、さまざまな操作やプロセスのマルチスレッドをサポートしているため、使用できる CPU コアが多くなります。ディスク容量 3.5 GB5 GB 以上の空き容量がある SSD ドライブモニターの解像度 1024 × 7681920 ×...

Ruby インタープリターを構成する
RubyMine で Ruby コードを操作するには、少なくとも 1 つの Ruby インタープリターを構成する必要があります。現在開いているプロジェクトのインタープリターを設定するか、新しいプロジェクトを作成するときに設定できます。Ruby インタープリターの構成は、インストール方法によって異なります。パッケージマネージャー(Ubuntu では apt、macOS では Homebrew など)または Ruby インストーラー(たとえば、Windows では RubyInstaller)を使用して R...

Ruby バージョンマネージャー
Linux または macOS に Ruby をインストールする最も一般的な方法は、バージョンマネージャー (RVM や rbenv など) を使用することです。バージョンマネージャーを使用すると、マシンに複数の Ruby バージョンをインストールし、すばやく切り替えることができます。RubyMine は、ローカルマシンにインストールされ、次のバージョンマネージャーによって管理されているインタープリターを自動的に検出します。RVM、gemsets 用の rbenv-gemsets プラグインを備えた rbe...

コード補完
基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を補完するのに役立ちます。RubyMine はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します。候補にはライブテンプレートも含まれます。補完機能は英語以外のキーボードレイアウトでも利用できます。基本補完を呼び出すデフォルトでは、RubyMine は入力時に自動的にコード補完ポップアップを表示します。あるいは、を押すか、メインメニューからを選択することもできます。、コード補完はカスタムファイルタイプで...

コードのリファクタリング
リファクタリングは、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定させ、保守を容易にできます。リファクタリングの呼び出し:リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。選択可能なリファクタリングのリストを開くには、を押します。または、特定のリファクタリング用のキーボードショートカットを使用することもできます。フィールドのカプセル化、static メン...