Rails 4.1 подталкивает секреты героку
Rails 4.1.0.beta1 и разработка.
Я пытаюсь удалить все мои ключи из управления версиями, и я обновился до Rails 4.1, чтобы дать этот новый secrets.yml выстрел
Попытка нажать Devise config.secret_key
на герою, но она не удалась после активов: precompile
Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = 'EXAMPLE_KEY_HERE'
Please ensure you restarted your application after installing Devise or setting the key.
Вот мои изменения, старый код, который я оставлю в комментариях. (он работает)
devise.rb
# config.secret_key = 'THIS_IS_A_FAKE_KEY' #<---this_is_commented_out
config.secret_key = Rails.application.secrets.devise_secret_key
secrets.yml
production:
devise_secret_key: 'THIS_IS_A_FAKE_KEY'
тогда побежал heroku labs:enable user-env-compile -a myapp
(не уверен, что это необходимо)
а затем, когда я нажимаю на свою разветвленную героиню envionment git push forked master
, я получаю указанную выше ошибку.
Я также заметил некоторую дискуссию об этом в этом репозитории Devise, поэтому решил, что обножу свой камень рядом с исходным репо, без разницы. Здесь часть этого обсуждения (здесь).
Ответы
Ответ 1
Вероятно, у вас есть secrets.yml, добавленный в ваш .gitignore. Это имеет смысл, поскольку вы вкладываете в него секретные ключи, но поскольку развертывание Heroku использует git, оно никогда не увидит ваш secrets.yml.
Одним из решений является использование героя heroku_secrets - см. fooobar.com/questions/545750/....
Другое решение - добавить secrets.yml в git (т.е. удалить его из .gitignore) после замены всех чувствительных ключей ссылками на переменные окружения.
Итак:
production:
devise_secret_key: <%= ENV['DEVISE_KEY'] %>
затем запустите heroku config:set DEVISE_KEY='7658699e0f765e8whatever'
Ответ 2
Вы должны использовать драгоценный камень figaro (https://github.com/laserlemon/figaro), он очень легко обрабатывает секреты с ним, и он отлично работает с Heroku rake figaro:heroku
.