RubyMine 2026.3 Help

Turbo

Turbo は Hotwire の一部です。 Rails アプリケーションが、カスタム JavaScript を必要とせずにページの一部を更新する機能を有効化します。

RubyMine は、Rails ビュー、コントローラー、モデル内で turbo-rails gem の Ruby API 向けコードインサイトを提供します。 プロジェクトで gem が利用可能な場合、Turbo メソッドは通常の Ruby メソッドと同じように解決されます。 Turbo 固有の候補は太字で表示され、補完リストの先頭に並べ替えられます。

候補とメソッドシグネチャーは、プロジェクトにインストールされている turbo-rails のバージョンから派生します。 入力中にコード補完が自動的に表示されます。 手動で呼び出すには、 Ctrl+Space を押します。

次のプロシージャでは、Rails アプリケーションで Turbo を操作するときに RubyMine コードインサイトを使用する方法を示します。 生成する メッセージ リソースを使用して、Turbo フレーム、Turbo ストリーム、ブロードキャストの補完とナビゲーションを示します。 これらの機能をアプリケーションに実装する方法については、 Turbo Handbook を参照してください。

始める前に

サンプルリソースを作成する

  1. Rails 7.0 以降を使用する 新しい Rails アプリケーションを作成します。 turbo-rails gem がプロジェクトに含まれていることを確認してください。

  2. Ctrl を二度押して Run Anything を開き、次を実行します:

    rails generate scaffold Message content:text

生成されたリソースは、以降のデモで編集コンテキストとして使用するモデル、コントローラー、ビューを提供します。 アプリケーションを実行する必要はありません。

Turbo Frame コード編集ヘルパーの補完

RubyMine では、Turbo ビューコード編集ヘルパーを ERB テンプレートで使用できます。 生成するビューを使用して、 turbo_frame_tag の補完がどのように機能するかを確認します。

Turbo Frame コード編集ヘルパーを補完する

  1. アプリ/views/messages/_message.html.erb を開き、ERB 式を開始して、 turbo_ と入力します:

    RubyMine は、インストールされている gem で利用可能な Turbo コード編集ヘルパーを一覧表示します。 Turbo メソッドは太字で表示され、補完リストの先頭に並べ替えられます。

    Turbo フレームの補完
  2. turbo_frame_tag を選択し、式を補完します。例:

    <%= turbo_frame_tag message do %> <%= message.content %> <% end %>

Turbo Stream アクションの補完

turbo_stream コード編集ヘルパーは Turbo::Streams::TagBuilder に解決されます。 そのため、RubyMine はプロジェクトで使用されている turbo-rails のバージョンが提供するストリームアクションを補完できます。

Turbo Stream テンプレート内のアクションを補完する

  1. アプリ/views/messages/create.turbo_stream.erb を作成します。

  2. ERB 出力タグ (<%= ... %>) 内で、 turbo_stream. と入力し始めます。 RubyMine は、インストールされている gem で利用可能な Turbo Stream アクションを自動的に表示します。

    Turbo Stream の補完
  3. prepend を選択し、呼び出しを補完します:

    <%= turbo_stream.prepend "messages", @message %>
  4. 新しい行で、別の ERB 出力タグ内に turbo_stream. と入力し始め、補完リストから 更新 を選択します。

    Turbo Stream の補完
  5. "new_message" をターゲットとして指定し、新しいメッセージフォームをレンダリングするブロックを追加します:

    <%= turbo_stream.update "new_message" do %> <%= render "form", message: Message.new %> <% end %>

Turbo Stream アクションは、コントローラー内で直接構築することもできます。 このコンテキストでコード補完を示すために、生成する 削除 アクションに Turbo ストリームレスポンスを追加します。 レスポンスは 削除 アクションを使用して、削除されたメッセージをページから削除します。

コントローラー内の Turbo Stream アクションを補完する

  1. アプリ/コントローラー/messages_コントローラー.rb を開き、生成する 削除 アクションを次のコードに置き換えます。 二つ目の turbo_stream. の後にキャレットを置いたままにします:

    def destroy @message.destroy! respond_to do |format| format.turbo_stream do render turbo_stream: turbo_stream. end format.html do redirect_to messages_path, status: :see_other, notice: "Message was successfully destroyed." end format.json { head :no_content } end end
  2. Ctrl+Space を押す。 RubyMine は、インストールされている gem で利用可能な Turbo Stream アクションを表示します。

  3. 削除 を選択し、 @message をターゲットとして指定します。

    補完されたアクションは次のようになります:

    def destroy @message.destroy! respond_to do |format| format.turbo_stream do render turbo_stream: turbo_stream.remove(@message) end format.html do redirect_to messages_path, status: :see_other, notice: "Message was successfully destroyed." end format.json { head :no_content } end end

ブロードキャストメソッドの補完

RubyMine は、 Turbo::Broadcastable のメソッドを Rails モデルで利用可能にし、コード補完で優先します。

ブロードキャストメソッドを補完する

  1. アプリ/models/message.rb を開き、 after_update_commit コールバックを追加します。 コールバックブロック内で、 broadcast_ と入力し始めます:

    class Message < ApplicationRecord after_update_commit do broadcast_ end end

    RubyMine は、インストールされている turbo-rails のバージョンで利用可能なブロードキャストメソッドを提案します。これには、同期メソッドとその非同期 _later_to バリアントが含まれます。

    モデル内の Turbo ブロードキャストメソッドのコード補完
  2. broadcast_replace_later_to を選択し、 "messages" をストリーム名として指定します。 補完されたコールバックは次のようになります:

    class Message < ApplicationRecord after_update_commit do broadcast_replace_later_to "messages" end end

Turbo メソッドの移動とインスペクション

RubyMine は、インストールされている turbo-rails gem が提供する Turbo メソッドを解決するため、その宣言に移動し、ドキュメントとシグネチャーを確認できます。

turbo_frame_tag など、解決済みの Turbo メソッドにキャレットを置き、次のいずれかを実行します:

  • Ctrl+B を押して、gem 内のメソッド宣言に移動します。 turbo_frame_tag の場合、RubyMine はインストールされている gem 内の アプリ/コード編集ヘルパー/turbo/frames_helper.rb を開きます。

  • Ctrl+Q を押して、メソッドのドキュメントを表示します。

  • メソッド呼び出し内で Ctrl+P を押して、そのシグネチャーを表示します。

詳細

2026 年 11 月 9 日