ruby on rails 4.1 - Generadores de rotura de muelle
ruby-on-rails-4.1 (4)
Este es un post antiguo, pero creo que mi experiencia podría ayudar a alguien ...
carriles 5.0.1
Me encontré con el mismo problema después de desordenar algunos de los archivos generados por el dispositivo (soy nuevo en los rieles y el aprendizaje) y luego probé los rieles que destruyen el modelo del dispositivo y me quedé atascado, lo intenté muchas veces y nada funcionó.
Busqué en Google, llegué aquí, intenté excluir las gemas de primavera, y funcionó, volvió a agregar gemas de primavera y el dispositivo se atascó de nuevo en todo.
Acabo de cerrar la terminal y abrí una nueva, y funcionó.
Estoy configurando mi primera aplicación Rails 4.1, que viene con Spring, su nuevo precargador. Cuando trato de instalar Devise usando su generador ( $ rails generate devise:install
), la línea de comandos simplemente se bloquea y no se genera nada.
Si elimino Spring del archivo gema y lo intento de nuevo, el generador de Devise funciona.
¿Alguien tiene alguna idea?
Hay el mismo problema en los rieles 5.1.4 para los responders gema
Enumeré las soluciones junto con las anteriores:
- Cerrar la terminal y abrir una nueva.
- ejecutar comando con
DISABLE_SPRING=1 bundle exec rails generate responders:install
o exportarlo como variable de entorno
export DISABLE_SPRING=1
- matar el proceso de primavera corriendo para su aplicación
ps ax | grep spring | grep YOUR_APP_NAME | cut -f1 -d'' '' | xargs kill
Puede deshabilitar el resorte para cualquier comando $ rails
pasando la variable de entorno DISABLE_SPRING=1
.
$ DISABLE_SPRING=1 rails generate devise:install
Alternativamente, puede probar $ spring stop
para reducir los procesos de primavera. Los $ rails generate
posteriormente ejecutarán un nuevo proceso de resorte, que podría resolver el problema temporal.
Verifique los directorios de algunos otros proyectos en los que estaba trabajando en ese momento, lo más probable es que los archivos generados terminen allí.
La primavera parece confundirse cuando trabajas con más de una aplicación de rieles a la vez. Eso es probablemente lo que causó tu problema.
Spring funciona como un servidor y mantiene un entorno de rieles cargado. Creo que lo que sucede es que si trabaja con más de un proyecto a la vez, entonces el sistema Spring parece confundirse y utiliza un entorno incorrecto.
He tenido una situación en la que estaba ejecutando rails g ...
en un proyecto y los archivos se estaban generando en otro proyecto. Lo que era una locura era que seguía cambiando el nombre y moviendo esa otra carpeta, y aún así el generador seguía poniendo los archivos en esa carpeta. Como si la primavera se hubiera enganchado en el inodo de esa carpeta.
Prueba DISABLE_SPRING=1 rails g devise:install
o ps aux |grep spring
y finalice todos los procesos que vea y luego ejecute rails g devise:install
Estamos sacando el resorte del Gemfile
por ahora mientras persista este comportamiento roto, y en el futuro usaremos rails new --skip-spring
Si desea seguir usando Spring, intente seguir estas reglas
- Usa nuevas conchas para cada nuevo proyecto.
- Use un nuevo nombre de directorio para cada nuevo proyecto (si hace un
rails new blog
, trabaje en él, entoncesmv blog blog.old
y elrails new blog
nuevamente, puede que no funcione. - De vez en cuando, sigue matando a todos los servidores de Spring, por razones de seguridad (y cordura).