Nếu bạn sử dụng một số công nhân với môi trường đầy đủ đường ray bạn có thể sử dụng khởi tạo sau:
# Enabled debugger with foreman, see https://github.com/ddollar/foreman/issues/58
if Rails.env.development?
require 'debugger'
Debugger.wait_connection = true
def find_available_port
server = TCPServer.new(nil, 0)
server.addr[1]
ensure
server.close if server
end
port = find_available_port
puts "Remote debugger on port #{port}"
Debugger.start_remote(nil, port)
end
Và trong nhật ký của quản đốc, bạn sẽ có thể tìm thấy cổng debugger của:
$ foreman start
12:48:42 web.1 | started with pid 29916
12:48:42 worker.1 | started with pid 29921
12:48:44 web.1 | I, [2012-10-30T12:48:44.810464 #29916] INFO -- : listening on addr=0.0.0.0:5000 fd=10
12:48:44 web.1 | I, [2012-10-30T12:48:44.810636 #29916] INFO -- : Refreshing Gem list
12:48:47 web.1 | Remote debugger on port 59269
12:48:48 worker.1 | Remote debugger on port 41301
Bây giờ chạy trình gỡ lỗi bằng cách sử dụng:
rdebug -c -p [PORT]
Rõ ràng, bạn cần thêm nhiều phiếu bầu. Nhờ bạn, tôi * cuối cùng * đã làm việc này. Cảm ơn! – Jimmy
Để hoàn thành, bước cuối cùng là kết nối với trình gỡ rối trong một trình bao riêng biệt với 'rails -c -p [PORT]' – Philipp
@Philipp - Ý của bạn là '' 'rdebug -c -p [PORT]' ''? Sử dụng lệnh '' 'rails''' không làm việc cho tôi. –