我有一个正在使用Devise的Rails 5.2应用程序。一切在我的计算机上都可以正常运行,但是当我尝试在CircleCI中运行测试时,出现此错误:
#!/bin/bash -eo pipefail
bundle exec rake db:create
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = 'faa1201370967c22ce2136d7ad84e50705ed50395292b9fde9f76b04dae12bb9e25246418393d779cbae15b259bac0e3430d28ff24c166c08ece1cae2ac19531'
您可以在这里看到它:https://circleci.com/gh/dashmantech/modulator/12
devise.rb
上的评论和默认设置为:
# The secret key used by Devise. Devise uses this key to generate
# random tokens. Changing this key will render invalid all existing
# confirmation, reset password and unlock tokens in the database.
# Devise will use the `secret_key_base` as its `secret_key`
# by default. You can change it below and use your own secret key.
# config.secret_key = "53552bdcd8ec0bb6a83d984380ae1a81233f73cce6093441b097efe1b6bd893eec5da67f2fb3afa3b23242e1b1f089c56eb82621996946f8960d8d71f95602cf"
似乎Devise会选择Rails的秘密密钥库。我已经在我的CircleCI设置中(在其Web UI上)定义了SECRET_KEY_BASE
,它似乎已正确导出:
为什么会出现此错误?我想念什么?处理此secret_key_base
进行测试和生产的Rails-5.2方法是什么?
我的应用程序的完整源代码在这里:https://github.com/dashmantech/modulator(我不确定与此问题有关)。
答案 0 :(得分:0)
我面临着完全相同的问题(使用Rails 5.2.1和Devise 4.4.3)。
我只是通过更新 Devise gem到 4.5.0 解决了它。
(我仍然不知道为什么Devise无法在产品中获得secret_key_base ...)