是否可以让 Rubymine 连接(并重新启动)已安装/正在运行的 Puma-dev 实例以进行调试 session ?

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

有可能吗?

最佳答案

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

  • export RUBY_DEBUG_PORT=1234 添加到 .env.powenv 或任何文件 puma-dev will load an environment variable from 。您可以随意使用任何您喜欢的端口,尽管 RubyMine 默认使用 1234。
  • ruby-debug-idedebase gem 添加到项目的 Gemfile 中。
  • 在你的项目中添加一个初始化器来初始化远程调试,像这样:
    if Rails.env.development? && ENV['RUBY_DEBUG_PORT']
      Debugger.start_server nil, ENV['RUBY_DEBUG_PORT'].to_i
    end
    
  • 重启 puma-dev。
  • 转到 RubyMine 中的“编辑配置”并添加“Ruby 远程调试”配置。随意命名。将端口更改为您通过 RUBY_DEBUG_PORT 设置的端口。将您的本地和远程根文件夹设置为您的项目根目录。
  • 选择您新创建的配置并单击调试按钮。它应该连接到在 puma-dev 进程中运行的调试器。
  • 关于ruby-on-rails - Rubymine:使用已安装的 Puma-dev 进行调试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53155045/

    10-15 12:05