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
+ボタンで追加し、上記で確認した情報を入力します。
Mappings
File > Settings > Build, Execution, Deployment > Deployment > Mappings
使用するインタープリタの設定
File > Settings > Languages & Frameworks > Ruby SDK and Gems
+で追加して、リモートで使用しているインタープリタを設定します。
下記のRuby interpreter pathは、/home/ubuntu/.rbenv/shims/ruby
ではなく、/home/ubuntu/.rbenv/versions/2.4.0/bin/ruby
の方のパスを使う必要があります。そうでないとGemが読み込まれません。
Run/Debug Configurationsの設定
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開発