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.