Rubymine:使用已安装的 Puma-dev 进行调试?

Rubymine: debugging using installed Puma-dev?

是否可以让 Rubymine 连接到(并重新启动)Puma-dev 的 installed/running 实例用于调试会话?

我使用 Puma-dev 在 "Appname".test 上测试我的 Rails 应用程序,但是如果我需要在应用程序中调试某些东西并想使用 Rubymine 的内置调试器,我可以只让它在端口 3000(或我选择的任何端口)上启动一个额外的 Puma 实例,而不是在端口 80/443 上已经 运行 Puma-dev。

有可能吗?

这可以通过 remote debugging 实现。要配置,您必须对您的应用程序进行一些更改:

  1. export RUBY_DEBUG_PORT=1234 添加到 .env.powenv 或任何文件 puma-dev will load an environment variable from。随意使用您喜欢的任何端口,尽管 RubyMine 默认使用 1234。

  2. ruby-debug-idedebase gem 添加到项目的 Gemfile 中。

  3. 向您的项目添加初始化程序以初始化远程调试,如下所示:

    if Rails.env.development? && ENV['RUBY_DEBUG_PORT']
      Debugger.start_server nil, ENV['RUBY_DEBUG_PORT'].to_i
    end
    
  4. 重新启动 puma-dev。
  5. 转到 RubyMine 中的编辑配置并添加 "Ruby remote debug" 配置。随心所欲地命名。将端口更改为您通过 RUBY_DEBUG_PORT 设置的端口。将本地和远程根文件夹设置为项目根目录。
  6. Select 您新创建的配置,然后单击“调试”按钮。它应该连接到您的 puma-dev 进程中的调试器 运行。