2014-04-01 22 views

Antwort

32

Ich hatte Informationen aus verschiedenen Quellen, um Stück zusammen, um die oben zu erreichen, so dass ich dachte, dass ich hier eine konsolidierte Führung für die Bequemlichkeit umfassen würde:

Hier sind die Schritte:

  1. In config/Umgebungen/development.rb hinzu:

    require 'byebug' 
    
    #set in your .powconfig 
    if ENV['RUBY_DEBUG_PORT'] 
        Byebug.start_server 'localhost', ENV['RUBY_DEBUG_PORT'].to_i 
    else 
        Byebug.start_server 'localhost' 
    end 
    
  2. Restart Pow und besuchen yourapp.dev

  3. Führen Sie den folgenden:

    [bundle exec] byebug -R localhost:<port_you_defined_in_pow_config> 
    

Sie sollten eine erfolgreiche Verbindung zur Remote-Instanz sehen.

+0

Vielen Dank dafür. Ich kann mich mit dem Server verbinden, aber meine Breakpoints brechen nicht. Irgendwelche Ideen? Orte zum Starten? Vielen Dank! –

+0

Verwenden Sie Pow? Wenn ja, versuchen Sie die erste Antwort in http: // stackoverflow.com/questions/8996498/ruby-debug-mit-pow-breakpoints-nie getroffen –

+2

Ich benutze pow. Ich habe die Antwort versucht, kein Glück. Ich sitze an einem Terminal mit 'Connecting by byebug server localhost: 12346. Connected.' und viele 'byebug' rufen meinen Code auf, aber kein Brechen! Ich bin zu diesem Zeitpunkt ratlos - wenn Sie noch andere Ideen haben, bin ich ganz Ohr! Ansonsten, danke für deine Hilfe! –

34

Josephs Antwort war gut, aber in mancherlei Hinsicht verwirrend. Er legt den Start des Byebug-Servers in config/environments/development.rb, wenn es in einem Initialisierer besser wäre. Zusätzlich wird die Umgebungsvariable .powenv oder .powrc exportiert. So habe ich es zum Laufen gebracht.

In Ihrem gemfile:

gem 'byebug' 

Auf der Kommandozeile:

bundle install 

Wenn Sie Pow verwenden, fügen Sie folgendes zu .powenv:

export BYEBUGPORT=3001 

Wenn Sie mit andere Frameworks (zB nur foreman), müssen Sie möglicherweise ändern .env stattdessen.

In config/initializers/byebug.rb

if Rails.env.development? and ENV['BYEBUGPORT'] 
    require 'byebug/core' 
    Byebug.start_server 'localhost', ENV['BYEBUGPORT'].to_i 
end 

Und schließlich auf der Kommandozeile:

touch tmp/restart.txt 

Sobald Sie Ihre pow Website gehen, sollte der byebug Server gestartet werden. In der Befehlszeile können Sie jetzt tun:

[bundle exec] byebug -R localhost:3001 
+1

wirklich gut gemacht. Es hat genau so funktioniert, wie du es dokumentiert hast. –

+1

Yup, folgte den Anweisungen und es funktioniert wie ein Charme. Danke Nicholas! –

+0

Beachten Sie, dass "touch tmp/restart.txt" je nach Anwendungsserver möglicherweise nicht benötigt wird. Wird für den Passagier in der Produktion benötigt und wird normalerweise in der Entwicklung auf keinem App-Server benötigt. –

Verwandte Themen