ruby-on-rails - tutorial - rails devise roles
LoadError: no se pudo cargar la gema ''escuchar''(Rails 5) (8)
Es posible que, por error, hayas configurado la bundle install --without
en algún momento lo haya hecho.
Para revertir esta ejecución:
bundle config --delete without
También ejecuté bundle config --delete with
como configuré manualmente with
opción también por error. Ejecutar ambos debería volver al comportamiento predeterminado.
Después de haber eliminado la configuración without
configuración, pude ejecutar nuevamente una bundle install
y luego mis rails s
, rails db:migrate
etc. funcionaron.
Puede confirmar si este es su problema ejecutando bundle install
y mirar la segunda última línea en la salida. Si dice:
Gems in the groups development and test were not installed.
Es seguro que la solución anterior debería funcionar para usted.
Tengo una aplicación Rails 5 en modo API que no me permite ejecutar rake routes
o rails s
. El error que recibo es:
$ 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)
He verificado que la listen
está en el grupo de desarrollo en mi 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
Y eso está en mi 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)
He actualizado el paquete, y el paquete está instalado, y he verificado que la gem install listen
funciona. Esto funcionó a principios de esta semana, pero no estoy teniendo la suerte de volver a mis compromisos.
$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
No lo veo en el vendor/cache
pero no estoy seguro de qué hacer con eso ...
$ bundle package | grep ''listen''
¡Aprecie la ayuda!
Actualizar:
Puedo "arreglar" el problema al poner gem ''listen'', ''~> 3.1.5''
en el archivo de gem ''listen'', ''~> 3.1.5''
global (y eliminarlo de :development
). Entonces todos los errores desaparecen y todo funciona, pero eso parece incorrecto.
Estoy teniendo el mismo problema al correr rails c
.
Al leer esta otra post desbordamiento de pila, me di cuenta de que es normal que tanto el comando de bundle exec rake
como la rails console
se ejecuten en un entorno de production
predeterminado.
Pensé que resolvería el problema ya sea por:
- agregando
export RAILS_ENV=production
en ~ / .bash_profile - escribiendo explícitamente el entorno en el que quiero que el comando se ejecute como el
bundle exec rake a_rake:task RAILS_ENV=production
rails console --env=production
etc ...
Si está en los carriles 5 y está utilizando el archivo config / environment / development.rb predeterminado, tendrá esta línea de código allí.
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
Esto requiere que la gema escuche. Esto me tiró por un momento, ya que estaba haciendo rieles 4 actualizaciones a rieles 5
Edición: Olvidé si mencionas que si comentas esa línea de código, ya no necesitará escuchar la gema.
Tuve el mismo problema, lo soluciono ejecutando
rails c -e production
Tuve el mismo problema. Gracias a la respuesta de @newdark, descubrí la solución correcta. Básicamente quería desplegar rieles en modo de production
. Pero obviamente se olvidó de establecer la variable de entorno RAILS_ENV=production
antes de ejecutar el servidor.
Así que para resumir, las dependencias para el modo de production
se instalaron, mientras que los rieles intentaron iniciarse en el modo de development
debido a que se olvidaron de configurar la RAILS_ENV=production
. Si continuara agregando gemas, listen
las dependencias de production
, estaría ejecutando en modo de desarrollo sin poder notarlo.
Para mí, la solución fue export RAILS_ENV=production
antes de ejecutar cualquier comando de rieles y mantener intactas las dependencias. Espero me las arreglé para explicar.
Tuve un problema similar hoy después de la actualización de Rails 5.1.5 a 5.2.0. La primera vez que se ejecutó el servidor se produjo el siguiente problema de "activos faltantes":
ActionView::Template::Error (The asset "asterisk_orange.png" is not present in the asset pipeline.)
Al intentar precompilar los activos se muestra el ''error de escucha de la gema'':
$ bundle exec rake assets:precompile
rake aborted!
LoadError: Could not load the ''listen'' gem. Add `gem ''listen''` to the development group of your Gemfile
Mi solución fue establecer un entorno de producción explícito:
$ RAILS_ENV=production bundle exec rake assets:precompile
Esto precompila los activos sin problemas y el problema de los "activos faltantes" se solucionó.
Utilicé esto: bundle install --without development
Error:
No se pudo cargar la gema ''escuchar''. Agregue
gem ''listen''
al grupo de desarrollo de su Gemfile (LoadError)
Después de esto, usa ese código:
bundle config --delete without
bundle config --delete with
Finalmente
bundle install
Estoy publicando esto como una respuesta, pero no me gusta.
Puedo "arreglar" el problema al poner gem ''listen'', ''~> 3.1.5''
en el archivo de gem ''listen'', ''~> 3.1.5''
global (y eliminarlo de :development
). Entonces todos los errores desaparecen y todo funciona, pero eso parece incorrecto.