Saltar al contenido

¿Cómo se ejecuta y depura Ruby on Rails desde Visual Studio Code?

Solución:

Configuración y lanzamiento

  1. Instale el complemento VS Code Ruby (pegar ++PAG y escriba ext install en el mensaje, luego busque ruby)
  2. Instale algunas gemas de Ruby necesarias
gem install ruby-debug-ide
gem install debase
  1. Agregar una configuración de lanzamiento en Visual Studio Code (ejemplo de configuración que se muestra a continuación)
{
    "name": "Rails server",
    "type": "Ruby",
    "request": "launch",
    "cwd": "${workspaceRoot}",
    "program": "${workspaceRoot}/bin/rails",
    "env": {
        "PATH": "YOUR_PATH_HERE",
        "GEM_HOME": "YOUR_GEM_HOME_HERE",
        "GEM_PATH": "YOUR_GEM_PATH_HERE",
        "RUBY_VERSION": "YOUR_RUBY_VERSION_HERE"
    },
    "args": [
        "server"
    ]
}

En algunos casos, es posible que no necesite especificar el env sección. En otros casos, puede iniciar VS Code usando la CLI (es decir, desde la terminal), que en algunos sistemas establece automáticamente las variables de entorno correctas.

  1. ¡Correr!

Solución de problemas

Si recibe el siguiente error

Debugger terminal error: Process failed: spawn rdebug-ide ENOENT

Tus variables de entorno (env) probablemente no estén configurados y el complemento no pueda encontrar los binarios necesarios.

  1. Asegúrese de que todas las gemas estén instaladas e intente ejecutar bundler install --binstubs si usa bundler.
  2. Asegúrate que env se establece en su configuración de lanzamiento. Ejecute el siguiente comando de shell para generar su env:
printf "n"env": {n  "PATH": "$PATH",n  "GEM_HOME": "$GEM_HOME",n  "GEM_PATH": "$GEM_PATH",n  "RUBY_VERSION": "$RUBY_VERSION"n}nn"

Ventanas

Asegúrese de utilizar la ortografía correcta (y las mayúsculas) del path variable, es decir Path en Windows


Fuentes:

  • https://github.com/rubyide/vscode-ruby/issues/214#issuecomment-393111908
  • https://www.reddit.com/r/vscode/comments/5w1acs/getting_error_debugger_terminal_error_process/
  • ¿Cómo extender $ PATH en launch.json en Visual Studio Code?

Pasé la mayor parte del día tratando de resolver esto.

Terminé eliminando mi configuración de launch.json a lo siguiente:

"configurations": [
    {
       "name": "Rails server",
        "type": "Ruby",
        "request": "launch",
        "cwd": "${workspaceRoot}",
        "program": "/Users/mitch/.rvm/gems/[email protected]_portal/bin/rails",
        "args": [
            "server"
        ],
        "useBundler": true,
        "pathToRDebugIDE": "/Users/mitch/.rvm/gems/[email protected]_portal/gems/ruby-debug-ide-0.6.1",
        "pathToBundler": "/Users/mitch/.rvm/gems/[email protected]_portal/wrappers/bundle",
        "showDebuggerOutput": true
    }

]

En primer lugar, especialmente si está usando RVM y tiene diferentes Gemsets, asegúrese de que sus caminos sean consistentes con el Gemset correcto.

Lo que resolvió el problema para mí fue pathToBundler.

which bundle
/Users/mitch/.rvm/gems/[email protected]_portal/bin/bundle

Parece haber alguna incompatibilidad en la configuración de la ruta del paquete binstubs (que se muestra arriba) y el paquete al que apunta desde / wrappers / (que se muestra a continuación), por lo que cambia pathToBundler a:

"pathToBundler": "/Users/mitch/.rvm/gems/[email protected]_portal/wrappers/bundle",

resuelve el problema.

Aquí hay una especie de discusión relacionada:

https://github.com/rails/rails/issues/31193

que habla de binstubs aunque no específicamente VSCode y depuración.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *