Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

RubyMineでVagrantのRailsをリモートデバッグする

More than 3 years have passed since last update.

Vagrantで作ったrailsの環境をRubyMineに設定することで、RubyMineからrails serverを実行したり、デバッグのステップ実行ができたりします。仕組みとしてはRubyMineからリモート環境にSSH接続して、リモート環境のインタープリタを使用します。

前提

  • rbenvを使っています。
  • ポートフォワーディングを下記のように設定している状態です。
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
  config.vm.network "forwarded_port", guest: 80, host: 9080, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 3000, host: 9030, host_ip: "127.0.0.1"
end

リモート環境へのSSH接続に関する設定

VagrantのSSHログイン情報の確認

下記でSSHログインに必要な情報が表示されます。

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User ubuntu
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/endoy/vagrant/ubuntu/default/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Deploymentの設定

Connection

File > Settings > Build, Execution, Deployment > Deployment > Connection

+ボタンで追加し、上記で確認した情報を入力します。

rubymine1.png

Mappings

File > Settings > Build, Execution, Deployment > Deployment > Mappings

rubymine1_2.png

使用するインタープリタの設定

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

+で追加して、リモートで使用しているインタープリタを設定します。

rubymine2.png

下記のRuby interpreter pathは、/home/ubuntu/.rbenv/shims/rubyではなく、/home/ubuntu/.rbenv/versions/2.4.0/bin/rubyの方のパスを使う必要があります。そうでないとGemが読み込まれません。

rubymine3.png

Run/Debug Configurationsの設定

rubymine4.png

rails serverにコントローラの変更が反映されない場合

Vagrantの設定によるかもしれませんが、コントローラを変更してもrails serverを再起動しないと変更が反映されないことがあります。その場合、config/environments/development.rbを下記のように変更すると反映されるようになります。

#config.file_watcher = ActiveSupport::EventedFileUpdateChecker
config.file_watcher = ActiveSupport::FileUpdateChecker

参考:
IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートインタプリタ Rails開発

edo1z
最近はPHPとVue.jsとFirebaseを使うことが多いです
https://twitter.com/edo1z
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away