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。
注意点は2つ。
- Project Type
- Rails Application を選びます。
- Location
- ゲストOSで作ったRailsのRootディレクトリを選びます(Synced Folder下に作ったはずなので、ホストOSから選択できるはず)。
以下の例では、centos6.5-ruby-readyがSynced Folderです。その下のprojectがRailsのRootディレクトリなので、それを選びます。
- ゲストOSで作ったRailsのRootディレクトリを選びます(Synced Folder下に作ったはずなので、ホストOSから選択できるはず)。
Deployment設定
で、ホストのプロジェクトとゲストのRailsアプリケーションディレクトリを関連づけ
プロジェクト作成後、RubyMineが立ち上がったらまずDeploymentの設定をして、ホストOSのプロジェクトフォルダとゲストOSのRailsディレクトリを関連づけます。
Tools → Deployment → Configrationsでウインドウを開き、
左上の+アイコンをクリックして新規作成後、ConnectionタブにてVagrantの環境に接続します。Root Pathは/vagrant
を指定します。
Mappingsタブにてディレクトリの関連づけ。
Local pathとDeployment path on server 'XXXXXX'のディレクトリを合わせます。
Ruby SDKの設定
ホストのRubyランタイムをプロジェクトのリモートSDKとして登録します。
File → Settings → Languages & Frameworks → Ruby SDK and Gems
+アイコンを押して、new Remote…
ラジオボタンでDeployment Configlationを選択。Ruby Interpreter pathにてリモートのRubyバイナリを選択します。rbenvをつかってるので、 /usr/local/rbenv/versions/2.1.2/bin/ruby
RubyMineにGemをDownload
RubyMineで一度Bundle Installを実行すると、どうやらホストOSのRubyMineのキャッシュにGemがダウンロードされるようです。これをやっておかないとRubyMineからデバッグが起動できませんでした。
以上でRubyMineでデバッグをする準備は完了です。
試しにデバッグしてみる
せっかく作ったので本当にデバッグできるか、適当にScaffoldを作って試してみましょう。
Scaffold
ActionからScaffoldを選んで、適当にモデルとフィールドを指定して作成します。
db:migrate
Scaffoldを作っただけではDBができていないので、Actionからdb:migrateを実行します
デバッグモードでサーバ起動
以下のようにコンソールが表示されれば、デバッグモードでサーバが起動しています。
デバッグ!
indexにブレークポイントを張ってアクセスしてみます