30
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsリモートデバッグ(RubyMine+Vagrant) @Windows10 Technical Preview

Last updated at Posted at 2014-10-31

Windows PCでRails開発環境を作ったのでメモ。

VagrantでつくったVMでRailsを立ち上げて、RubyMineからデバッガを接続します。RubyMineを使うとGUIからデバッグができるので、開発や問題解決の効率を上げることができます。

環境

  • ホストOS
    • Windows10 TC Build 9860
    • RubyMine RM-139.160
    • VM Oracle Virtual Box 4.3.12
  • ゲストOS
    • CentOS 6.5 x86-64
    • ruby 2.1.2p95 (2014-05-08 revision 45877) x86_64-linux (rbenv でインストール(rbenv 0.4.0-129-g7e0e85b))
    • Rails 4.1.7

概要

  • Rails環境を、VagrantのSynced Folder(/vagrant)の下に作成
  • RubyMineにて、Rails Applicationプロジェクトを新規作成する。このとき上記フォルダをRootとして設定
  • Deployment設定で、ホストのプロジェクトとゲストのRailsアプリケーションディレクトリを関連づけ
  • ホストのRubyランタイムをプロジェクトのリモートSDKとして登録
  • RubyMineで一度Bundle Installを実行
  • デバッグできる!

手順

Rails環境

Vagrant upしてから、ゲストOSにログインして、VagrantのSynced Folderの下に作ります。今回は/vagrant/projectをRailsのRootフォルダにしました。

(環境構築の手順は省略します。)

以下のような構成になりました。

[vagrant@vagrant project]$ pwd
/vagrant/project

[vagrant@vagrant project]$ ls -ltr
total 18
-rwxrwxrwx 1 vagrant vagrant  478 Nov  1 02:31 README.rdoc
-rwxrwxrwx 1 vagrant vagrant  249 Nov  1 02:31 Rakefile
-rwxrwxrwx 1 vagrant vagrant  154 Nov  1 02:31 config.ru
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:31 app
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:31 bin
drwxrwxrwx 1 vagrant vagrant 4096 Nov  1 02:31 config
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:31 db
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:31 lib
drwxrwxrwx 1 vagrant vagrant 4096 Nov  1 02:31 public
drwxrwxrwx 1 vagrant vagrant 4096 Nov  1 02:31 test
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:31 vendor
-rwxrwxrwx 1 vagrant vagrant 1358 Nov  1 02:35 Gemfile
-rwxrwxrwx 1 vagrant vagrant 2896 Nov  1 02:36 Gemfile.lock
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:37 tmp
drwxrwxrwx 1 vagrant vagrant    0 Nov  1 02:37 log

[vagrant@vagrant project]$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]

[vagrant@vagrant project]$ which ruby
/usr/local/rbenv/shims/ruby

RubyMine プロジェクト作成

ホストOSに戻ってRubyMineを起動。Create New Project。
project_creations.PNG
注意点は2つ。

  • Project Type
    • Rails Application を選びます。
  • Location
    • ゲストOSで作ったRailsのRootディレクトリを選びます(Synced Folder下に作ったはずなので、ホストOSから選択できるはず)。
      以下の例では、centos6.5-ruby-readyがSynced Folderです。その下のprojectがRailsのRootディレクトリなので、それを選びます。

project_directory_selection.png

Deployment設定

で、ホストのプロジェクトとゲストのRailsアプリケーションディレクトリを関連づけ
プロジェクト作成後、RubyMineが立ち上がったらまずDeploymentの設定をして、ホストOSのプロジェクトフォルダとゲストOSのRailsディレクトリを関連づけます。

Tools → Deployment → Configrationsでウインドウを開き、

左上の+アイコンをクリックして新規作成後、ConnectionタブにてVagrantの環境に接続します。Root Pathは/vagrantを指定します。

deployment_config_connection.png

Mappingsタブにてディレクトリの関連づけ。

Local pathとDeployment path on server 'XXXXXX'のディレクトリを合わせます。

deployment_config_mappings.png

Ruby SDKの設定

ホストのRubyランタイムをプロジェクトのリモートSDKとして登録します。

File → Settings → Languages & Frameworks → Ruby SDK and Gems

+アイコンを押して、new Remote…

settings_sdk.png

ラジオボタンでDeployment Configlationを選択。Ruby Interpreter pathにてリモートのRubyバイナリを選択します。rbenvをつかってるので、 /usr/local/rbenv/versions/2.1.2/bin/ruby

settings_sdk_selection.png

RubyMineにGemをDownload

RubyMineで一度Bundle Installを実行すると、どうやらホストOSのRubyMineのキャッシュにGemがダウンロードされるようです。これをやっておかないとRubyMineからデバッグが起動できませんでした。

bundle_install.png

以上でRubyMineでデバッグをする準備は完了です。

試しにデバッグしてみる

せっかく作ったので本当にデバッグできるか、適当にScaffoldを作って試してみましょう。

Scaffold

ActionからScaffoldを選んで、適当にモデルとフィールドを指定して作成します。

scaffold.png

db:migrate

Scaffoldを作っただけではDBができていないので、Actionからdb:migrateを実行します

db_migrate.png

デバッグモードでサーバ起動

Run → Debug… でデバッグメニューを開いて
run_debug.png

Developmentのデバッグを選択します
debug.png

以下のようにコンソールが表示されれば、デバッグモードでサーバが起動しています。
debug_start.png

デバッグ!

indexにブレークポイントを張ってアクセスしてみます

ブレークポイントはほかのIDE等と同じで、エディタ行の左枠外?をクリックすれば配置できます。
breakpoint.png

ブラウザからURLにアクセス
access_server.png

ブレークポイントで処理が止まりました。変数の中身も確認できます。
debugging.png

30
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?