Depuração visual remota com RubyMine 4.5 / 5

Esta postagem já está desatualizada. Para RubMine 6, você deve olhar este: RubyMine 6.0 Remote Ruby SDK + debugging

Eu gosto de usar o Vagrant para projetos nos quais estou trabalhando.

Sempre pensei que usar máquinas virtuais faz com que você faça concessões, pelo menos para a depuração visual. Mas este não é o caso para desenvolver aplicativos Ruby (e Rails) com RubyMine .

Você precisará encaminhar outra porta em sua VM. Se você também estiver usando o Vagrant, esta é apenas uma linha de configuração dentro do seu Vagrantfile

config.vm.forward_port 1234, 1234

Instale ruby-debug-ide gem em seu servidor VM

gem install ruby-debug-ide --pre --no-ri --no-rdoc
gem install
debugger --no-ri --no-rdoc

Dentro do RubyMine, adicione uma nova configuração de execução / depuração. Execute -> Editar configurações … -> Adicionar nova configuração (sinal +) -> Depuração remota Ruby
Defina corretamente sua raiz remota e pastas raiz locais.

Cenário

Para executar seu aplicativo Rails em modo de depuração em sua VM, você precisa executá-lo com o comando rdebug-ide . Cuidado para definir o host correto ou apenas defina-o como 0.0.0.0, que ouvirá todas as conexões na porta 1234.

rdebug-ide --port 1234 --dispatcher-port 26162 -h 0.0.0.0 -- script/rails server

Quando o aplicativo Rails está rodando, você pode definir pontos de ruptura dentro do RubyMine clicando em um painel, à esquerda da linha de código que deseja depurar. O depurador deve interromper a execução nessa linha quando você fizer a solicitação certa.

Não encontrei nenhum bom exemplo de como usar o depurador remoto para aplicativos Rails, então escrevi este post. Eu espero que você ache isso útil.