Удаленная отладка приложения Rails в Aptana Studio 3

#ruby-on-rails #debugging #aptana #remote-debugging #mod-rails

#ruby-on-rails #отладка #aptana #удаленная отладка #мод-rails

Вопрос:

Моя среда разработки Rails — Aptana Studio 3.0.5, работающая в Windows. Приложения выполняются на Apache ModRails (Phusion Passenger) на отдельном компьютере CentOS Linux. У меня есть оба приложения Rails 2.x и 3.x.

Я хотел бы иметь возможность использовать отладчик в Aptana Studio (удаленно подключаться к запущенному приложению). По-видимому, для этого есть некоторые положения, но я не смог выяснить, что мне нужно на стороне сервера (в моей конфигурации приложения Rails)

Я пробовал это:

  1. Использование Rack :: Debug: создает только сокет unix, не может быть подключен удаленно.

  2. Использование ruby-debug напрямую:

    Я добавил это в свой /config/environments/development.rb :

 если File.существует?(File.join(RAILS_ROOT,'tmp', 'debug.txt ')) 
 требуется 'ruby-debug' 
 Debugger.wait_connection = true
 Debugger.start_remote("real.hostname", 5000, 5001)
 File.delete(File.join(RAILS_ROOT,'tmp', 'debug.txt '))
 завершение
 

Запуск моего кода с debugger помощью операторов останавливает выполнение, но я не могу подключиться к этому экземпляру из Aptana, а не к порту 5000, а не к порту 5001 (и я не понимаю, зачем мне там два порта).

Кроме того, этот метод был бы довольно медленным и слишком запутанным, даже если бы он работал, я бы хотел иметь более «интегрированную» отладку. Возможно ли это вообще?

Ответ №1:

Старые шаги для Netbeans относительно близки, поскольку Aptana / RadRails и Netbeans используют одно и то же ядро отладчика: http://blogs.oracle.com/martink/entry/remote_debugging_debug_whatever_ruby

По сути, запустите приложение ruby, используя rdebug-ide -p 7000 (или любой другой порт, который вы хотите), затем внутри IDE перейдите в меню Run> Debug configuration. С левой стороны выберите «Сеанс удаленной отладки Ruby», а затем добавьте туда новую конфигурацию (значок плюса над списком). Введите правильный IP-адрес / имя и порт хоста, которые вы ввели в командной строке.