Произошла необработанная ошибка низкого уровня после того, как я добавил секретный ключ Devise - PullRequest
0 голосов
/ 14 марта 2019

Обычно я делаю обновления для моего производственного приложения Ruby on Rails, и сегодня я обновил некоторые уязвимости безопасности с помощью gem-файлов, перенес их в репозиторий Github, а затем выполнил мастер git push heroku и получил следующие ошибки:

remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        Devise.secret_key was not set. Please add the following to your Devise initializer:
remote:
remote:          config.secret_key = '<hash>'
remote:
remote:        Please ensure you restarted your application after installing Devise or setting the key....
remote:  !
remote:  !     Precompiling assets failed.
remote:  !

Не уверен, существует ли связь между actionview -v 5.1.6.2, к которой я недавно обновился, и этой ошибкой, но я добавил и добавил, что config.secret_key = ..., а затем зафиксировал его и отправил в репозиторий, а затем git push heroku master и теперь я получаю это:

An unhandled lowlevel error occurred. The application logs may have details.

Журналы Heroku говорят:

 #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>

Но у меня есть это в моем config/secrets.yml:

# Do not keep production secrets in the unencrypted secrets file.
# Instead, either read values from the environment.
# Or, use `bin/rails secrets:setup` to configure encrypted secrets
# and move the `production:` environment over there.

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

1 Ответ

0 голосов
/ 14 марта 2019

Я решил не соглашаться с тем, что Heroku предлагал установить секретный ключ Devise в моем файле devise.rb, и вместо этого перешел к файлу application.rb и добавил следующую строку кода:

config.secret_key_base = ENV["SECRET_KEY_BASE"]

Я забыл, что в Heroku уже установлен базовый набор секретных ключей, поэтому после добавления этой строки кода в файл application.rb и внесения изменений в репозиторий Github я запустил git push heroku master, а затем heroku run rake db:migrate и мой производственный сайт RoR снова запущен и работает, как новый.

Это решение было лучше, если бы в моем файле devise.rb не было секретного ключа, который не был бы хорошей идеей с точки зрения безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...