缺少`secret_token`和`secret_key_base`用于'开发'环境,在`config / secrets.yml`中设置这些值

时间:2015-09-04 12:03:10

标签: ruby-on-rails ruby ruby-on-rails-4

当我尝试运行rails server命令时,我收到错误

enter image description here

如何解决?

我的 config / environments / development.rb

Rails.application.configure do

  config.secret_key_base = ENV["SECRET_KEY_BASE"]

  #Some stuff 

end

我的文件夹中没有 secret.yml 文件。

enter image description here

5 个答案:

答案 0 :(得分:30)

然后创建一个:

配置/ secrets.yml

# be sure to restart your server when you modify this file...
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
development:
  secret_key_base:  asdflkjasdlfkjasldfkj

test:
  secret_key_base:  asdflkhasldfhlhaskdlflakhsdf

production:
  secret_key_base: 523lk5h2lkjlj6nlk4n6lk4

显然不要使用上面的那些键^只是在键盘上混搭,或使用rake secret生成一个:)

答案 1 :(得分:2)

您跳过了一个安装步骤。

对于Redmine 2和3版本,请键入:

RAILS_ENV=production bundle exec rake generate_secret_token

答案 2 :(得分:1)

我对这个问题的解决方案是创建一个新项目,然后将“ secrets.yml”从新生成的应用程序复制到旧项目中。

rails new TmpApp

cd TmpApp/config

cp secrets.yml /Path/to/old/project/config/

答案 3 :(得分:0)

我遇到了与Redmine相同的问题。有一个Rake任务来生成它。它不需要进入Yaml文件。它进入初始化文件夹中的secret_tocken.rb文件。

答案 4 :(得分:0)

以下解决方案对我有帮助:

在配置目录中创建secrets.yml文件。

在终端中,键入以下命令:rake secret。这将为您生成一个要包含在secrets.yml文件中的秘密。

将以下代码片段添加到config / secrets.yml文件中:

发展:   secret_key_base:PASTE_YOUR_GENERATED_SECRET_HERE