SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発用エディタのド定番「VSCode」を使いこなそう

VS CodeでRuby開発環境を構築しよう

開発用エディタのド定番「VSCode」を使いこなそう 第18回

WINGSプロジェクト 山内 直[著] / 山田 祥寛[監修]

Railsアドオンの主な機能

 Rubyは独立したプログラミング言語ではありますが、その人気を決定的にしたのがRuby on Railsです。RailsはWebアプリケーション開発のためのフレームワークであり、数あるRuby用のフレームワークの中でも一番の人気と実績を誇ります。ここではこのRailsアプリケーション開発に有用な環境を作っていきます。

 とはいえ、Rails LSPのインストールによって、必要な準備はほぼ整っています。Ruby LSPにはRailsアドオンが用意されており、ワークスペースがRailsプロジェクトである場合、自動的に有効化されます。特段のインストール作業は不要で、すぐに使い始めることができます。

 Railsアドオンが提供する主な機能は以下の通りです。

データベーススキーマのホバー表示(Hover)

 Active Recordモデルのクラス名にマウスポインタをホバーさせると、データベースのカラム名やそのデータ型をポップアップ表示させることができます(図13)。スキーマ確認に、わざわざschema.rbを見に行く手間を省くことができて便利です。

図13:データベーススキーマのホバー表示
図13:データベーススキーマのホバー表示

コントローラからビューへのジャンプ(Go to Controller Action View)

 コントローラのアクション名の上に表示されるCode Lens(小さなテキストリンク)[Jump to view]をクリックすることで、対応するビューファイルへ移動できます(図14)。

図14:コントローラからビューへのジャンプ
図14:コントローラからビューへのジャンプ

Railsジェネレータ実行(Ruby File Operations)

 ファイルエクスプローラーなどの操作から、ターミナルを開かずにrails generateやrails destroyコマンドを実行できます(図15)。ただし、自動になるのはコマンドの実行のみで、引数部分(モデルの定義など)は自身で組み立てる必要があります。

  1. ファイルエクスプローラーにおいて、プロジェクト内の任意のフォルダ/ファイルを右クリックして、コンテキストメニューから[Ruby file operations]を選択します。
  2. コマンドパレットが開くので、[Rails generate]を選択する
  3. パラメータを入力できるようになるので、生成したいモデルやコントローラ、Scaffoldingの指定を入力する
図15:Railsジェネレータの実行
図15:Railsジェネレータの実行

 生成されたファイルは、自動で開かれます(図16)。なお、マイグレーションを自動で実行するかポップアップで尋ねられるので、必要に応じて実行できます。もちろん、手動でコマンドを入力して実行しても構いません。

図16:Railsジェネレータの実行結果
図16:Railsジェネレータの実行結果

 モデルなどを削除する場合は、同様の操作で[Rails destroy]を選択し、削除するモデル、コントローラなどを入力します。

 上記の他、以下の機能があります。

  • 関連やコールバック定義への移動(Go to Definition):モデル内のbelongs_toやhas_manyなどの関連定義、またはbefore_actionやafter_saveに指定されたメソッド名(シンボル)から定義元へ移動できる
  • コントローラからルーティングへのジャンプ(Go to Controller Action Route):コントローラのアクション名の上に表示されるCode Lens(小さなテキストリンク)[Jump to route]をクリックすることで、config/routes.rb内の対応するルーティング定義へ移動できる(resourcesメソッドで定義されるものを除く)
  • エディタ上からのテスト実行とデバッグ(Run and Debug Tests):ActiveSupport::TestCaseを継承したRailsのテスト(Minitestなど)を、エディタのUI(Code Lensやテストビュー)から直接ボタン一つで実行・デバッグできる。

ERBサポート

 Ruby LSPの機能として、ERB(Embedded Ruby)ファイルがサポートされています(Railsアドオンの機能ではありません)。ERB自体はRails専用の機能ではないのですが、Railsで使われることが多いため、ここで紹介します。

 Ruby LSPは、ERBファイルに埋め込まれたRubyコードとホスト言語コード(たとえばHTML)の両方を処理します。Rubyコードについては、Ruby LSPは通常のRubyファイルと同様にシンタックスハイライトやコード補完などの機能を提供します。ホスト言語コードについては、Ruby LSPはそのファイルタイプの言語サーバ(Emmetなど)にリクエストを委任します。

デバッグの設定

 VSCode rdbg Ruby DebuggerによるRailsアプリケーションの実行とデバッグも可能です。そのために、まずはlaunch.jsonファイルを作成します。Railsアプリケーションのデバッグには、あらかじめ前述のdebug.gem、VSCode rdbg Ruby Debuggerを含むデバッグ環境の設定が済んでいることが前提です。

 手順は「VSCode rdbg Ruby Debugger」項と同様なので、まずはlaunch.jsonファイルを作成してください。そして、Railsアプリケーションの実行用にリスト3のように編集します。

リスト3:launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "rdbg",
      "name": "Debug Rails App with rdbg",	// 適当に修正
      "request": "launch",
      "cwd": "${workspaceFolder}",		// 追加
      "script": "bin/rails server -p 3000",	// 修正
      "useBundler": true			// 追加
      //"args": [],				// 削除
      //"askParameters": true			// 削除
    },
  ]
}

 デバッグの開始も、手順は「VSCode rdbg Ruby Debugger」項と同様です。適当な行にブレークポイントを設定します。プライマリサイドバーから[Debug Rails App with rdbg (…)]アイコンをクリックすると、開発サーバが起動します。ブラウザから指定したブレークポイントを通るURLでアプリケーションを開くと、その位置で停止することを確認できます(図17)。

図17:Railsアプリケーションのデバッグ
図17:Railsアプリケーションのデバッグ

[NOTE]Railsアプリケーション開発のための拡張機能

 Railsアプリケーション開発のための拡張機能には、主に表3に挙げるものがあります。

表3:Railsアプリケーションのための主な拡張機能
拡張機能 ID パブリッシャー 概要
Ruby on Rails hridoy.rails-snippets Hridoy 10,000を超えるコードスニペット
Rails Run Specs noku.rails-run-spec-vscode Peter Negrei Run Specの提供
Rails Go to Spec sporto.rails-go-to-spec sporto コードとSpecの切り替え
Rails Fast Nav jemmyw.rails-fast-nav jemmyw ファイル間の移動をサポート
Rails Snippets Vense.rails-snippets Vense コードスニペット集

 ただしこれらの拡張機能は何年もメンテナンスされないままであり、現時点においての利用には不安があります。そのため本記事では、Ruby LSPのRailsアドオンに絞って紹介しました。

今回登場のショートカットキー

 なし

まとめ

 今回は、VS CodeをRubyによる開発に使えるように、基本的な言語サポートに加え、Webアプリ開発のための環境構築について紹介しました。

 次回は、Javaについて、言語サポート、Webアプリ開発などの環境構築を紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
開発用エディタのド定番「VSCode」を使いこなそう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー