2

Rubymineでデバッガーを実行しようとしていますが、このエラーが発生し続けます。

/Users/skline/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide --port 49877 -- /Users/skline/Sites/2t2/app/mailers/user_notifications.rb
Fast Debugger (ruby-debug-ide 0.4.17.beta3, ruby-debug-base 0.11.26) listens on 127.0.0.1:49877
    <internal:lib/rubygems/custom_require>:29:in `require'
    <internal:lib/rubygems/custom_require>:29:in `require'
    /Users/skline/Sites/2t2/app/mailers/user_notifications.rb:1:in `<top (required)>'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_load'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_program'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide:87:in `<top (required)>'
    -e:1:in `load'
    -e:1:in `<main>'
Uncaught exception: no such file to load -- safe_mailer

Process finished with exit code 0

何かご意見は?

4

2 に答える 2

2

アプリで変更された宝石またはその他の依存関係のようです。あなたが報告しているエラーには、答えが埋め込まれているようです: /app/mailers/user_notifications.rb をチェックして、要件行 1 が何を求めているかを確認してください。次に、29 行目の lib/rubygems/custom_require を見てください。これら 2 つのファイルの 1 つは、見つからない何かを要求しているようです。あなたが使用している gem の経験はありませんが、gem の依存関係を見逃しているか、Gem のバージョン エラーがあるか、存在しないか名前が移動または変更されたものに対する Include ステートメントがあるようです。

于 2011-05-13T15:34:10.113 に答える
0

問題

RubyMine 2016.2.4 を使用して [実行] > [デバッグ] を使用すると、同様のエラーが発生しました。

/Users/Mp/.rvm/rubies/ruby-2.3.0/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/Mp/.rvm/gems/ruby-2.3.0@global/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide --disable-int-handler --evaluation-timeout 10 --rubymine-protocol-extensions --port 54743 --host 0.0.0.0 --dispatcher-port 54744 -- /Users/Mp/code/apps/ruby_test/team_system/team.rb
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 0.0.0.0:54743

Process finished with exit code 0

最初に、サンプルの ruby​​ ファイル team.rb にブレークポイントを設定し、[実行] > [デバッグ] を実行すると、動作しました (コンソールでは0>代わりに表示されましたProcess finished with exit code 0) 。

class Team attr_reader :size def initialize(size) @size = size end end team = Team.new(100)

インターネット上の投稿をたどって、成功せずに解決しようと何時間も費やしました。RubyMine を再インストールする準備ができたので、サポート メールに問い合わせることにしました。私は、次のようなすべてを試したと言いました。

  • コンピューターの再起動
  • RubyMine の再起動と実行rm -rf .idea
  • ランニングgem pristine --all
  • 2.3.0 の代わりに ruby​​ 2.1.2 を試す (つまりrvm install 2.1.2 rvm list rvm use 2.1.2)
  • RVM バージョンrvm -vrvm 1.26.11の確認
  • gem envとで宝石の位置を確認しますwhich ruby。これは、それらが /usr/bin/ruby と /Users/Ls/.rvm/rubies/ruby-2.3.0/bin/ruby の両方にあることを示しています
  • gem uninstall ...グローバルな Ruby の場所とデフォルトの RVM の両方で関連する gem をアンインストール (つまり)
  • それらを再インストールする $ gem install debug_inspector $ gem install debugger-linecache $ gem install ruby-debug-ide $ gem install debase $ gem install debase-ruby_core_source $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug_inspector $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug-linecache $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global ruby-debug-ide $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase-ruby_core_source $ gem install linecache19-0.5.13.gem
  • ランニングbundle update
  • RubyMine 2016.2.4 への更新
  • [ファイル] > [既定の設定] > [言語とフレームワーク] > [Ruby SDK と Gem] に移動し、RVM の使用を選択します: ruby​​-2.3.0
  • 実行 > 現在の ruby​​ ファイルの構成の編集に移動し、構成タブで [他の SDK を使用] をクリックし、RVM: ruby​​-2.3.0 [global] を選択します (RVM: ruby​​-2.3.0 のみを選択することも試みました)。

解決

RubyMine サポートからgem list、詳細出力 ([設定] > [ビルド、実行、デプロイ] > [デバッガ] > [詳細デバッガ]) の出力を表示してオンにすることを提案するフィードバックがありました。

彼らのフィードバックはすぐに返信する代わりに、gem の競合が原因であるに違いないという強力な手がかりを与えてくれたので、次のアプローチを試してみました。

  • RubyMine キャッシュをクリアしました File > Invalidate Caches & Restart > Invalidate Caches & Restart
  • グローバル、RVM 2.3.0 (グローバル)、および RVM 2.3.0 (デフォルト) に保存されている Ruby gem を表示しました。注:関連するものだけを表示するために、以下に示すリストをフィルタリングしました

$ GEM_PATH=$GEM_HOME gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

$ rvm ruby-2.3.0 do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

$ rvm ruby-2.3.0 @global do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) linecache19 (0.5.13) ruby-debug-ide (0.6.0)

  • Rubyの最新バージョンをインストール $ rvm install ruby-2.3.1
  • RVM 2.3.1 (グローバル) と RVM 2.3.1 (デフォルト) の Ruby gem を表示しました。どちらも同じ結果

$ rvm ruby-2.3.1 do gem list $ rvm ruby-2.3.1 @global do gem list LOCAL GEMS bigdecimal (1.2.8) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) rvm (1.11.3.9) test-unit (3.1.5)

  • RVM の現在のバージョンを確認し、1.26.11 から最新バージョン 1.27.0 にアップグレードしました $ rvm -v $ rvm get stable $ rvm reload $ rvm list
  • RubyMine https://rvm.io/gemsets/basicsを使用して機能をテストするための宝石を収容するための特別な Gemset を作成しました rvm ruby-2.3.1 do rvm gemset create rubymine_2016_4_2
  • Ruby のバージョンが変更されていることを確認しました $ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
  • RubyMine 2016_2_4 を開き、[ファイル] > [デフォルト設定] > [言語とフレームワーク] > [Ruby SDK と Gem] に移動しました。RVM: ruby​​-2.3.0 の選択を解除し、代わりに RVM: ruby​​-2.3.1 ruby​​mine_2016_2_4 を選択しました。次に、「緑色のチェックマーク」アイコンをクリックしてプロジェクトに使用し、最後に [OK] をクリックしました。
  • デバッグしたい team.rb ファイルを開いた状態で、Run > Edit Configurations を開きました。次に、Other SDK: RVM: ruby​​-2.3.1 [rubymine_2016_2_4] を選択し、最後に [OK] をクリックしました。これにより、「デバッガーが必要とする gem debase が現在インストールされていません。インストールしますか?」というポップアップ ウィンドウが表示されました。はいをクリックしました
  • RubyMine がカスタム ruby​​mine_2016_2_4 gemset をどのように変更したかを確認しました

$ rvm ruby-2.3.1@rubymine_2016_2_4 do gem list LOCAL GEMS bigdecimal (1.2.8) debase (0.2.2.beta8, 0.2.1) debase-ruby_core_source (0.9.2) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) ruby-debug-ide (0.6.1.beta2) rvm (1.11.3.9) test-unit (3.1.5)

  • サンプルの ruby​​ ファイル team.rb にブレークポイントを設定してデバッグを再試行し、Run > Debug を実行しました。それは機能し、0>代わりに表示されたコンソールProcess finished with exit code 0
于 2016-10-17T21:31:34.870 に答える