the supported run rails not migrations how available ruby-on-rails heroku devise

ruby-on-rails - supported - run migrations heroku rails



no encontrar ENV[''SECRET_KEY''] en la configuraciĆ³n del dispositivo en heroku (3)

Esta idea, no controlar las claves secretas de la versión, es asombrosa, y la he usado varias veces para no tener versiones de la base de claves secretas de mis rieles.

Intenté usarlo para el diseño secret_key en heroku y mi intento falló miserablemente. Funciona bien en dev, pero se negó a permitirme presionar a heroku, diciendo que la clave de diseño que creé (de la misma manera que en la parte de arriba) no estaba configurada.

Lo conseguí trabajando con una clave secreta codificada (registrada en git), pero no cuando usé lo siguiente:

Devise.setup do |config| config.secret_key = ENV[''DEVISE_SECRET_KEY''] ...

(con la variable de entorno asociada comprobó tres veces que estaba allí)

Parece fallar en la precompilación de activos durante la inserción en heroku

$ git push heroku master ... (bundle stuff here) Running: rake assets:precompile rake aborted! Devise.secret_key was not set. Please add the following to your Devise initializer: config.secret_key = ''0cfa796871e0... /tmp/build_.../vendor/bundle/ruby/1.9.1/gems/devise-3.1.1/lib/devise/rails/routes.rb:446:in `raise_no_secret_key'' /tmp/build_.../vendor/bundle/ruby/1.9.1/gems/devise-3.1.1/lib/devise/rails/routes.rb:195:in `devise_for'' /tmp/build_.../config/routes.rb:2:in `block in <top (required)>'' ...( rest of the long stacktrace with little of interest here)

el error se genera cuando "devise_for" se ejecuta en el directorio de rutas. línea relevante:

MyApp::Application.routes.draw do devise_for :users, :path_names => { :sign_in => ''login'', :sign_out => ''logout''}

La línea relevante en la gema real del ingenio es:

raise_no_secret_key unless Devise.secret_key

Entonces, realmente solo es comprobar si secret_key se configuró.

solo para confirmar ... Revisé la configuración de heroku, y de hecho, puse una clave secreta en el entorno con ese nombre.

DEVISE_SECRET_KEY: 3f844454bee...(more here) RAILS_SECRET_KEY_BASE: 04bf569d4e...(more here)

porque está en una tarea de rake en lugar de en la aplicación, supongo que es por eso que no puede llegar a la ENV ???

¿Alguna idea sobre dónde podría comenzar a buscar una solución?



Si se está rompiendo en el momento de la compilación, necesita habilitar los heroku labs:enable user-env-compile para que el entorno esté disponible cuando la aplicación se inicie para compilar los activos.


La función de los laboratorios de compilación de usuarios ya no está disponible en Heroku.

Estoy usando Ruby 2.2.2p95 y Rails 4.2.4.

Lo que funcionó para mí es, en config / initializers / devise.rb:

config.secret_key = ENV[''DEVISE_SECRET_KEY''] if Rails.env.production?

A continuación, agregue la configuración DEVISE_SECRET_KEY var en heroku, establezca lo que desee. Una buena práctica es generar algo con la misma longitud que el valor predeterminado para desarrollo y prueba.

Espero que esto ayude.