【问题标题】:Mina and Devise.secret_key was not setMina 和 Devise.secret_key 未设置
【发布时间】:2015-01-14 19:52:59
【问题描述】:

我正在尝试使用 mina 部署我的应用程序。 当它开始运行迁移时,我收到了这个错误:

-----> Migrating database
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:

  config.secret_key = 'key here.......'

Please ensure you restarted your application after installing Devise or setting the key.
.........

在我的设计初始化程序中,我有 config.secret_key = ENV["SECRET_KEY_BASE"]

如何将此密钥添加到我的应用程序? secret_key_base 和 secret_key 有区别吗?

这可能很愚蠢,但我不知道如何添加此密钥。

本地一切正常

ps 我正在使用 figaro

【问题讨论】:

    标签: ruby-on-rails devise mina


    【解决方案1】:

    打开你的rails应用文件夹去

    config/initializers/devise.rb

    并在最后粘贴这行代码:

    config.secret_key = *****
    

    其中 ***** 是您的控制台在弹出错误时为您提供的字符串。

    作为环境变量:

    如果你想要一个环境变量,你可以采用不同的方式,例如将上面的代码行替换为:

    config.secret_key = ENV['DEVISE_SECRET_KEY']
    

    然后您可以在 keys.yml 文件上创建一个变量并将其添加到您的 ./gitignore 文件中。

    之后,您可以像这样将 yaml 文件导入您的应用:

    config/application.rb:

       ENV.update YAML.load(File.read(File.expand_path('../keys.yml', __FILE__)))
       module yourApp
         ...
         ...
       end
    

    【讨论】:

    • 这段代码可以公开吗?它将在 git 上可见。这就是我担心的。
    • 如果你在 git 上存储,我会使用环境变量来存储密钥。例如:ENV['DEVISE_SECRET_KEY']
    • 我将它存储在环境变量中,但是当我使用 mina 进行部署时,它看不到这个键。
    • 对不起,我以某种方式错过了您 OP 中的那部分。在终端输入echo "export SECRET_KEY_BASE="insert key here" >> .bashrc
    【解决方案2】:

    我加了

    set :shared_paths, ['config/database.yml', 'log', 'config/secrets.yml']
    

    到我的deploy.rb,它解决了我的问题。

    secrets.yml我设置DEVISE_SECRET

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2016-02-28
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      相关资源
      最近更新 更多