ruby-on-rails - software - ruby on rails tutorial
rails server bin/rails: 6: warning: ya se ha inicializado el error APP_PATH constante (20)
He intentado una serie de cosas como desinstalar / reinstalar rieles y gemas, pero fue en vano.
Cuando entro en mi nuevo proyecto y ejecuto rails o empaqueté el servidor de exec rails, recibo este error:
bin/rails:6: warning: already initialized constant APP_PATH
/Users/toabui/Sites/cms/bin/rails:6: warning: previous definition of APP_PATH was here Usage: rails COMMAND [ARGS]
Dentro de mi bin / rails veo este código:
#!/usr/bin/env ruby
begin
load File.expand_path("../spring", __FILE__)
rescue LoadError
end
APP_PATH = File.expand_path(''../../config/application'', __FILE__)
require_relative ''../config/boot''
require ''rails/commands''
¿Alguien sabe por qué sigo recibiendo ese error cuando corro los rieles?
Busqué en Google y parece que hay un error con la gema de primavera, pero parece que no puedo hacer que funcione.
SI rake rails:update:bin
da errores adicionales:
Recientemente he estado haciendo un poco de mantenimiento del servidor y posteriormente había actualizado OpenSSL.
Cuando intenté ejecutar los rake rails:update:bin
command, me presentaron un error relacionado con openSSL.
Después de haber reconstruido mi versión de Ruby (`rvm reinstalar ruby-xxx ''con RVM), ambos errores desaparecieron.
Esto siempre vale la pena intentarlo, supongo.
¿Estás usando pg y mysql en diferentes ramas? En caso afirmativo, confirme el archivo de configuración db.
Acabo de tener este problema y descubrí que estaba causado por el hecho de que había eliminado una gema del archivo gem sin eliminar las otras referencias obligatorias. En mi caso, solo tuve que eliminarlo de config / application.rb.
Ejecuta estos en la consola:
rake tmp:clear
rake secret
Estaba obteniendo el mismo error. Se eliminó la primavera de Gemfile y se volvió a empaquetar. Sin embargo, en realidad no es una solución.
Encontré el código que creó este error en config/initializers/an_initializer.rb
require "lib/a_file_i_need"
Lo cambié por
require "#{ Rails.root }/lib/a_file_i_need"
Esto es trabajo para mi
gem uninstall mysql2
bundle install
o gem install mysql2
Esto me sucedió después de hacer una brew upgrade
. Mi suposición es que esto rompió algunas gemas con extensiones nativas, aunque no hubo ningún mensaje de error apuntando a eso.
Lo que terminé haciendo fue eliminar por completo mis gemas instaladas (en mi caso, desinstalé por completo y reinstalé la versión de ruby usando rbenv
).
La ejecución de la bundle install
compiló las extensiones nativas y todo se estaba ejecutando nuevamente.
Mi problema era que estaba usando una versión obsoleta de ruby 1.9.3 con rieles 4.2. Actualicé a 2.1.2, eliminé el proyecto roto, ejecuté un nuevo blog en rails para recrear mi proyecto, navegué en mi aplicación recién creada y ejecuté el servidor de rails y funcionó.
No pude encontrar el an_initilizer.rb en mi directorio y traté de desinstalar / instalar la gema de primavera, pero no funcionó.
Sin embargo, logré finalmente hacerlo funcionar.
Aparentemente hay un conflicto con Spring y Rails 4+.
Necesitaba ejecutar:
rake rails:update:bin
Pero me encontré con otro error:
Library not loaded: libmysqlclient.18.dylib
Ejecuté el siguiente comando que encontré en otra publicación de :
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Luego ejecutó el comando original:
rake rails:update:bin
A continuación, ejecute el comando del servidor:
rails s
Y ahora mi servidor WebBrick se está ejecutando.
Para mí, este problema se presentó como resultado de la mejora del paquete rvm-capistrano, entre otras cosas.
Agregar esto requiere: cosas fijas falsas al final según esta post anterior
gem ''rvm-capistrano'', require: false
Aunque podría ser un problema adicional, como ejecutar rake rails:update:bin
puede haber ayudado a aclarar el problema inicial.
Recibí este error después de actualizar los rieles. Desactivar la spring
me da una pista de que el problema era con:
gem ''google-api-client'', require: ''google/api_client''
Cambiado a:
gem ''google-api-client'', ''0.9''
Resolvió el problema.
Recibí este error después de actualizar postgresql.
$ gem uninstall pg
$ gem install pg
resolvió este problema para mí.
Recibí este error tratando de actualizar los rieles 4 y imagemagick y rmagick. Así que solo corrí
joya desinstalar rmagick
Seleccione la opción Todas las versiones. Vuelva a intentarlo
EDITAR: Esto pasó otra vez conmigo ahora porque traté de usar una gema sin instalar la joya base requerida. En mi caso, la solución fue instalar ''omniauth-google'' antes de intentar usar ''omniauth-google-oauth2'', pero como no lo instalé, volví a tener el mismo error
Si está en El Capitan (OS X 10.11), la Protección de integridad de seguridad (SIP) evitará que se enlace a / usr / lib para arreglar mysql. Vincúlelo en / usr / local / lib en su lugar:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Tenía la misma salida de mensaje de error cuando intentaba iniciar una aplicación dentro de un entorno Vagrant. Surgió de la nada después de cero cambios en el código de la aplicación (y se siguieron otros comportamientos raros, como el proceso de eliminación de development.rb al intentar ejecutar la aplicación).
Al final, simplemente detuve la máquina virtual y la reinicié; todo estaba bien, entonces ¿supongo que era un problema con la sincronización de archivos / carpetas compartidas? (Carpeta compartida Vagrant predeterminada que se utiliza).
Tengo el mismo error. Tenía Ruby 2.1.3 y Rails 4.1.6 ejecutándose en Mavericks y luego migré a Yosemite e instalé la versión 4.2.0 rails de un rubí 2.1.5 y mis aplicaciones que hice en la versión anterior no funcionaron con la nueva , entonces hice algunos conjuntos de gemas con RVM e instalé la versión 2.1.3. Ahora, cuando quería ejecutar el servidor, obtuve estos errores:
bin/rails:6: warning: already initialized constant APP_PATH
/Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]
Y como tobu mencionó, corrí:
rake rails:update:bin
Tengo esto:
LoadError: dlopen(/Users/Lexynux/.rvm/gems/ruby-2.1.3@SAIIP2/extensions/x86_64-darwin-14/2.1.0-static/mysql2-0.3.16/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Luego ejecuté esto:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Y finalmente repetí el primer comando que la terminal me preguntó por esto:
Overwrite /Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails? (enter "h" for help) [Ynaqdh]
Acabo de escribir ''S'' y presiono regresar.
Después de todo esto, comencé a trabajar y a ir bien.
Gracias.
Tuve este error recientemente, es causado por la primavera, debido a su código sugerido en ejecutables:
begin
load File.expand_path(''../spring'', __FILE__)
rescue LoadError
end
Originalmente espera un LoadError
para la primavera en producción, pero con este código también se ignorarán todos los demás errores de carga.
Por lo tanto, si tiene otro proceso de carga de LoadError
en los rieles (por ejemplo, en routes / init), el arranque del trabajador de primavera falla y luego va la rama que intenta cargar todo de nuevo, como si no hubiera resorte.
Voy a publicar lo que funcionó para mí.
Comentar
gem ''spring''
Añadir gem ''net-shh''
y ejecutar la bundle install
Y reinicie su servidor
gem dotenv
el mismo error, sucedió que estaba relacionado con gem dotenv
. Las instrucciones fueron agregar lo siguiente a Gemfile:
gem ''dotenv'', :require => ''dotenv/rails-now''
Pero como resultó, dotenv/rails-now
causó el error. Si usa dotenv
no necesita rails-now
rake rails:update:bin
al rescate.