我正在制作一个个人开发的应用程序。
我尝试使用从 Rails 7 开始成为标准的 debug gem 进行调试,但是即使我进入调试会话,(rdbg) 也无法顺利工作。我不知道是什么原因。如果有任何建议请告诉我。
我的 Gemfile 如下。
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '3.1.2'
gem 'rails', '~> 7.0.2', '>= 7.0.2.4'
gem 'sprockets-rails'
gem 'pg'
gem 'puma'
gem 'importmap-rails'
gem 'turbo-rails'
gem 'stimulus-rails'
gem 'tailwindcss-rails'
gem 'jbuilder'
gem 'redis'
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
gem 'bootsnap', require: false
gem 'sorcery'
gem 'rails-i18n'
gem 'config'
gem 'simple_form'
gem 'enum'
gem 'enum_help'
gem 'draper'
gem 'redis-actionpack'
gem 'carrierwave'
gem 'validates_email_format_of'
group :development, :test do
gem 'annotate'
gem 'capybara'
gem 'debug', platforms: %i[mri mingw x64_mingw]
gem 'factory_bot_rails'
gem 'faker'
gem 'launchy'
gem 'rails-controller-testing'
gem 'rspec-rails'
gem 'shoulda-matchers'
gem 'webdrivers'
end
group :development do
gem 'web-console'
gem 'better_errors'
gem 'binding_of_caller'
gem 'solargraph'
gem 'letter_opener_web'
end
我已将“调试器”放入控制器中并进入调试会话,终端控制台将是以下屏幕。
我的理解是应该提示(rdbg)并等待调试命令。
然而,无论我等多久,(rdbg)都没有出现。
当我按n(下一个)命令时没有任何反应。 (有时确实有效,但要花很多时间,而且完全没用。)
你能给我一些建议吗?
从FVVID的评论来看,原因似乎是服务器是用“bin/dev”命令启动的。
我的环境是“importmap + tailwindcss”。
“tailwindcss”在调试期间不会更新,因此我现在可以通过使用“rails s”命令而不是“bin/dev”启动服务器来使用调试 gem。
感谢FVVID。
我是 Mac 用户,您需要根据您的平台调整此建议/学习。
如果关闭
foreman
不是问题,那么这就是我所做的;使用 overmind
作为替代品:
bin/dev
文件更改为:if ! command -v overmind &> /dev/null
then
echo "Installing overmind via homebrew..."
brew install overmind
fi
export PORT="${PORT:-3000}"
overmind start -f Procfile.dev
与
foreman
相同,但您现在使用的是 overmind
。因此,像平常一样在终端中运行 bin/dev
。
overmind
时,打开另一个终端并使用以下命令“连接”到 overmind web
进程:overmind connect web
。它只会获取 Rails 7.x 中默认声明的 web
服务,并让您以过去习惯的方式访问调试过程。
Procfile.dev
值得注意的是: 如果您发现聚合日志中的
web: bin/rails server # <== see how the dots connect: overmind connect **web**`
js: bun run build --watch
css: bun run build:css --watch
噪音有点多,那么这客观上会更好,这样您就可以只单独查看网络日志。
为有兴趣的人提供一些额外资源: