У меня есть приложение Rails 5 в режиме API, которое не позволит мне запускать rake routes
или 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)
Я проверил, что listen
находится в группе разработки в моем Gemfile:
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'
Цените помощь!
Update:
Я могу "исправить" проблему, поместив gem 'listen', '~> 3.1.5'
в глобальный Gemfile (и удалив его из :development
). Затем все ошибки уходят, и все работает, но это кажется неправильным.