2011-04-23 21 views
9

Acabo de empezar a aprender ruby ​​en los rieles. Seguí muchos ejemplos de instalación, pero cuando ejecuté el ejemplo recibo este errorRuby on Rails config.secret_token error

Se requiere un secreto para generar un hash de integridad para los datos de la sesión de cookie. Use config.secret_token = "alguna frase secreta de al menos 30 caracteres" en config/initializers/secret_token.rb

Lo busco pero no veo demasiada ayuda.

por favor ayuda.

Plataforma: Mac OS X.

Respuesta

9

El token debería haber sido generado automáticamente por rieles, pero aún se podía usar algo como:

irb(main):007:0> "#{ActiveSupport::SecureRandom.hex(64)}" 
=> "921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9" 

sentido, se puede generar un poco de cadena aleatoria y ponerlo en su config/initializers/secret_token.rb archivo:

# Be sure to restart your server when you modify this file. 

Yourapp::Application.config.secret_token = '921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9' 
+8

En Rails 3.2, ActiveSupport :: SecureRandom ya no funciona. Ahora es solo SecureRandom. Se verá así, "# {SecureRandom.hex (64)}" – MoB

33

La forma más sencilla de generar un nuevo token secreto es ejecutar

rake secret 

en la línea de comando.

0

Este simple comando trabajó para mí:

rvmsudo rake generate_secret_token 
4

Este es un problema con los carriles versión probablemente. Tuve este problema cuando desinstalé Rails 4 e instalé Rails 3. Después de verificar los rails -v y viendo que en verdad era Rails 3, ejecuté rails new myapp. Por alguna razón, el archivo de configuración config/initializers/secret_token.rb tenía definida la variable "config.secret_key_base", que parece ser cómo lo hace Rails 4. Pude solucionarlo cambiándolo a "config.secret_token", que creo que es lo que usa Rails 3.

+1

¡Gracias! Me encontré con esto también. – tol4trob

0

asegurarse de que tiene esto en su environment.rb:

YourApp::Application.initialize! 
0

encontramos con este mismo tema y descubrí que mi config/inicializadores archivo/secret_token.rb estaba siendo ignorado por git en mi archivo .gitignore. Consulte el directorio config/initializers en la ubicación de origen de git y asegúrese de que exista el archivo secret_token.rb. Si no edita su archivo .gitignore para que git no ignore el archivo secret_token.rb y confirme sus cambios (generalmente oculto, utilicé estos comandos simples para mostrar los archivos ocultos en un mac http://osxdaily.com/2009/02/25/show-hidden-files-in-os-x/).