ruby-on-rails - RubyMine/IDEA ruby​​ 调试器无法在 bundle 模式下加载 linecache gem

标签 ruby-on-rails ruby gem bundler rubymine

在 IDEA 13(和更早版本,例如 11)Ruby 中,在 bundler 中启动调试器(检查运行目标的 bundler 选项卡中的“在 bundle 上下文中运行脚本”选项)Ruby,我总是得到

/Users/me/.rvm/rubies/ree-1.8.7-2012.02/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/me/.rvm/gems/ree-1.8.7-2012.02/gems/ruby-debug-ide-0.4.22/bin/rdebug-ide --disable-int-handler --port 58100 --dispatcher-port 58101 -- /Users/me/railproj/script/spec --format specdoc spec/**/any_ruby_spec.rb
/Users/me/.rvm/gems/ree-1.8.7-2012.02/gems/ruby-debug-base-0.10.5.rc9/lib/ruby-debug-base.rb:3:in `require': no such file to load -- linecache (LoadError)
    from /Users/me/.rvm/gems/ree-1.8.7-2012.02/gems/ruby-debug-base-0.10.5.rc9/lib/ruby-debug-base.rb:3
    from /Users/me/Library/Application Support/IntelliJIdea13/ruby/rb/gems/debug_preloader.rb:2:in `require'
    from /Users/me/Library/Application Support/IntelliJIdea13/ruby/rb/gems/debug_preloader.rb:2

linecache gem 安装正确

$ gem which linecache
/Users/me/.rvm/gems/ree-1.8.7-2012.02/gems/linecache-0.46/lib/linecache.rb

将行缓存放在 Gemfile 中根本没有帮助。

但是在没有 bundler 的情况下为相同的运行目标启动调试器(取消选中“在 bundle 上下文中运行脚本”)是有效的。当然,很容易与 bundler 上下文发生 gem 冲突。

如何解决这个问题?

最佳答案

我找到了解决方案/解决方法:只需添加

require 'rubygems'

到 ruby​​-debug-base.rb 的第一行(确保添加到 RM/Idea 使用的正确行,因为可以有多个版本。)

但我仍然不知道为什么它在没有 bundler 选项的情况下也能正常工作。我觉得应该是相反的情况。

关于ruby-on-rails - RubyMine/IDEA ruby​​ 调试器无法在 bundle 模式下加载 linecache gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21653808/

相关文章:

ruby-on-rails - Rails 验证错误消息中的插入符号有什么作用?

java - Jruby 嵌入式模块和类

ruby-on-rails - 使用 wicked_pdf gem 用 wkhtmltopdf 生成 PDF,卡在 Mac 上

ruby - 来自 created_at 的不同天数的 ActiveRecord 计数?

mysql - Rails 3. 没有这样的文件要加载 -- 生产中的 mysql2/mysql2

ruby-on-rails - 没有要加载的文件——RMagick.rb Rails,Ubuntu

gem - 导轨 3 : How to override a method in a gem

ruby-on-rails - rails 中带有哈希列的数据库

ruby-on-rails - 细长 rails 中的变量

ruby-on-rails - 使用rails button_to helper生成隐藏的表单字段数据?