rails how debug ruby-on-rails-4 pow byebug

ruby-on-rails-4 - how - debug in controller rails



Cómo usar Byebug con un proceso remoto(por ej., Pow) (2)

¿Cómo me conecto a una instancia de depuración remota de Byebug (para usar con Pow, etc.)?


Tuve que juntar información de varias fuentes para lograr lo anterior, así que pensé en incluir una guía consolidada aquí para su conveniencia:

Estos son los pasos:

  1. En config / environments / development.rb, agregue:

    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. Reinicia Pow y visita yourapp.dev

  3. Ejecute lo siguiente:

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

Debería ver una conexión exitosa a la instancia remota.


La respuesta de Joseph fue buena pero confusa en algunos aspectos pequeños. Coloca el inicio del servidor byebug en config/environments/development.rb , cuando sería mejor en un inicializador. Además, la exportación de la variable de entorno entra en .powenv o .powrc . Así es como lo hice funcionar.

En tu gemfile:

gem ''byebug''

En la línea de comando:

bundle install

Si está utilizando Pow, agregue lo siguiente a .powenv :

export BYEBUGPORT=3001

Si está utilizando otros marcos (por ejemplo, solo foreman ), puede que tenga que modificar .env en .env lugar.

En config/initializers/byebug.rb

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

Y finalmente en la línea de comando:

touch tmp/restart.txt

Una vez que vayas a tu sitio de pow, el servidor de byebug debería iniciarse. En la línea de comando, ahora puedes hacer:

[bundle exec] byebug -R localhost:3001