Estoy desarrollando una aplicación Rails 4 utilizando la gema Active Admin para el back-end de administración. Active Admin, a su vez, utiliza Devise para la autenticación de usuarios. Ahora, cuando intento implementar la aplicación capistranoen el servidor VPS, aparece el siguiente error:
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '-- secret key --'
Una búsqueda en Google no hace mucho por este error. ¿Alguna sugerencia de por qué está arrojando un error? ¿Debo agregar la clave secreta al deviseinicializador, ya que no puedo encontrar ningún lugar para configurar dicha clave de configuración initializers/devise.rb?
ruby-on-rails
devise
scarver2
fuente
fuente

secret key. Además, si está ejecutando una instalación nueva, la aplicación debería encargarse de eso. Gracias al ticket en github.com/plataformatec/devise/issues/2554 se ha resuelto.Respuestas:
Corrí
bundle updateesta mañana y comencé a recibir el mismo error.Lo agregué como una línea
config/initializers/devise.rby se solucionó el error.Este parece ser el compromiso que lo introdujo.
fuente
SECRET_KEY_BASEvariable de entorno en lugar de copiarlasecrets.ymlpara que no olvide su "clave secreta" no es lo suficientemente secreto!Lo que funcionó para mí en Rails 4.1 y Devise 3.2.4 está en
config/initializers/devise.rb:fuente
figarogema:config.secret_key = Figaro.env.devise_secret_key if Rails.env.production?A partir de Devise 3.2.3 para las aplicaciones Rails 4+, la ubicación de la configuración de clave predeterminada es YourAppName :: Application.config.secret_key_base que se encuentra en config / initializers / secret_token.rb
fuente
Esto resolvió mi problema:
Agregue el código siguiente a su archivo config / initializers / devise.rb .
Reemplace '- clave secreta--' con su propia clave. Recomiendo almacenarlo en una variable ENV por motivos de seguridad.
fuente
ENV["your_particular_secret_key_name"]. Luego, su aplicación hace referencia a sus claves de forma dinámica. Pero ha ignorado sus claves, entonces, ¿cómo las lleva a su entorno de producción? Los empuja directamente desde su entorno de desarrollo local a heroku usando figaro, y sus claves secretas terminarán como variables de entorno en herokuSegún el registro de cambios :
Fui a
config/secrets.ymly cambié elproductionvalor.Antes de:
Después:
Por supuesto, eso debería establecerse en la variable de entorno, que estableceré más adelante, pero esto al menos lo ejecutó. Obtuve mi cuerda usando
bundle exec rake secret.fuente
¿Podría ser que no corriste
rails g devise:install?Ejecutar
rails generate devise Usersin el comando anterior causa este problema.fuente
rails g devise userantes de intentar crear la tabla de usuarios y migrar. Esto solucionó el problema.En
config/initializers/devise.rbpongo:Porque si pones:
Verá un
secret_key_basepara el modoproduction.fuente
Resuelvo mi problema de inicializador con este desagradable enfoque:
en config / initializers / devise.rb ¡Ahora funciona tanto en producción como en desarrollo!
fuente
Cloné mi repositorio en una nueva máquina de git. los
El archivo estaba en mi lista .gitignore, por lo que ese archivo no existía y Devise no crea el archivo.
Agregué el archivo, luego volví a ejecutar
Y funcionó.
fuente
secrets.ymla mi.gitignorearchivo. No le di una lectura completa y me impresionó vagamente que incluyera mucho más que el.gitignorearchivo Rails generado . : facepalm:Compruebe si
config\initializers\secret_token.rbtiene:Debería ser:
fuente
Tengo el mismo problema. El problema fue causado por estas líneas en
routes.rb:Los comenté y después de eso ejecuto:
Y ha evaluado perfectamente. Y después de eso descomenté las rutas.
fuente
rails generate devise:installantes de crear mi primer modelo de dispositivo. Según esta respuesta, comentó la línea devise_for en las rutas, luego ejecute el comando generate y funciona.devise_forlínea para obtener mi rake db: migrar al trabajo ... aunque no tengo idea de por quéBueno, he estado siguiendo esta publicación y probé casi todo aquí. He agregado la clave a
devise.rb. Pero seguía recibiendo el mismo error.Quizás una respuesta estúpida, pero todo lo que tenía que hacer era presionar la
devise.rbclave del repositorio.fuente
Reparar:
En el servidor de producción:
Luego en el archivo agregue:
para establecer esto de forma permanente, y en todo el sistema (todos los usuarios, todos los procesos) agregue la variable de conjunto
En el
devise.rbarchivo del proyecto local :Detalles técnicos:
fuente
Me encontré con el mismo problema con Rails 5.2.0 y Devise 4.4.1
Coloque lo siguiente en /config/initializers/devise.rb
fuente
Tratando de dar una respuesta algo más completa a los de arriba: Como se mencionó en la gema de devise_auth_token documentación
Tuve el mismo problema y, como se menciona aquí, creé el inicializador del dispositivo y le agregué la
config.secret_key = ENV['DEVISE_SECRET_KEY']línea.fuente
No conozco la solución correcta, pero está funcionando. Puedes probarlo. Me clonaron mi proyecto de mi cuenta de GitLab y cuando lo ejecuto en mi servidor local, tengo un mensaje de error:
rake aborted! Devise.secret_key was not set. Please add the following to your Devise initializer: config.secret_key = '-- secret key --'Abre
config/initializers/devise.rby agrega esta líneaconfig.secret_key = '<%= ENV["SECRET_KEY_BASE"] %>'Esta línea de código ha resuelto mi problema.
fuente
<%= %>como interpolación de cadenas. Su clave será literalmente lo que ha escrito dentro del literal de cadena' what ever the %he!@#$ you type here is your key no matter what characters'