You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置VS Code Rails调试器,使其在本地虚拟机启动Rails时生效?

问题根因

你当前launch.json配置的type: Ruby会让VS Code的Ruby调试扩展直接把program指定的文件作为Ruby代码解析执行,你传入的是shell脚本,ssh命令不符合Ruby语法,自然会触发语法报错。

正确配置步骤

1. 虚拟机端前置配置

  • 首先给虚拟机内的Rails项目安装调试依赖,在Gemfile的development分组添加对应版本适配Rails4的包:
group :development do
  gem 'ruby-debug-ide', '~> 0.7.3'
  gem 'debase', '~> 0.2.5.beta2'
end

进入虚拟机项目目录执行bundle install完成安装。

  • 修改Vagrantfile添加调试端口转发,重启Vagrant生效:
config.vm.network "forwarded_port", guest: 1234, host: 1234
  • 修改虚拟机内的Procfile.debug,把Rails启动命令替换为调试模式启动:
web: rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s -b 0.0.0.0 -p 3000

2. 本地VS Code配置调整

将launch.json改为远程附加模式,不要直接用launch模式执行shell脚本:

{
  "configurations": [
    {
      "name": "Attach to Vagrant Rails",
      "type": "Ruby",
      "request": "attach",
      "remoteHost": "127.0.0.1",
      "remotePort": 1234,
      "remoteWorkspaceRoot": "/vagrant/rails_project", // 替换为虚拟机内Rails项目的绝对路径
      "localWorkspaceRoot": "${workspaceFolder}"
    }
  ]
}

3. 启动调试流程

  1. 先在本地终端执行你写的start_web.sh脚本,等待虚拟机内调试服务启动,出现日志Fast Debugger (ruby-debug-ide xxx) listens on 0.0.0.0:1234即为启动成功
  2. 打开VS Code运行调试面板,选择「Attach to Vagrant Rails」点击启动,即可正常打断点调试。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:09:03