LoadError: 'listen' gem を読み込めませんでした (Rails 5) 質問する

LoadError: 'listen' gem を読み込めませんでした (Rails 5) 質問する

rake routesまたは を実行できない API モードの Rails 5 アプリがありますrails s。次のようなエラーが表示されます。

$ rake routes
rake aborted!
LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
.../config/environment.rb:5:in `<top (required)>'
LoadError: cannot load such file -- listen
.../config/environment.rb:5:in `<top (required)>'
Tasks: TOP => routes => environment
(See full trace by running task with --trace)

listenGemfile の開発グループにあることを確認しました:

group :development do
  gem 'listen', '~> 3.1.5'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

そしてそれは私の Gemfile.lock にあります:

$ cat Gemfile.lock | grep 'listen'
    listen (3.1.5)
    spring-watcher-listen (2.0.0)
      listen (>= 2.7, < 4.0)
  listen (~> 3.1.5)
  spring-watcher-listen (~> 2.0.0)

バンドルを更新し、バンドルをインストールして、gem install listen動作することを確認しました。今週初めは動作していましたが、コミットをさかのぼってみるとうまくいきません。

$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]

私にはそれが見えませんvendor/cacheが、それをどう解釈したらよいのかわかりません...

$ bundle package | grep 'listen'

ご協力ありがとうございます!

アップデート:

gem 'listen', '~> 3.1.5'グローバル Gemfile に を入れることで (そして から削除することで) 問題を「修正」できます:development。するとすべてのエラーが消えてすべてが機能しますが、それは間違っているようです。

ベストアンサー1

Rails 5でデフォルトを使用している場合config/環境/開発.rbファイルにはこのコード行が含まれます。

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

これにはgem listenが必要です。Rails 4からRails 5へのアップグレードをしていたときに、少し戸惑いました。

編集: そのコード行をコメントアウトすると listen gem は必要なくなることを忘れていました。

おすすめ記事