与设计和路轨的秘密钥匙

时间:2014-05-01 22:26:16

标签: ruby-on-rails devise

Enviornment:

Rails 4
Devise
Windows 8.1

在devise.rb中,我有以下内容:

  config.secret_key = 'mysecretkey' if Rails.env == 'development'

在secrets.yml中,我有以下内容:

development:
  secret_key_base: mysecretkey

当我运行命令rails s,然后运行localhost:3000时,我收到以下消息:

Missing `secret_key_base` for 'development' environment, set this value in `config/secrets.yml`

知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

我知道这对你来说太迟了,但我想我会发一个答案,因为它可能对别人有用。

众所周知,在源代码中保留密钥,API密钥等是不好的做法。到目前为止,最好的方法是使用您在应用程序之外设置的环境变量。您可以通过以下方式使用这些变量:

  config.secret_key = ENV['DEVISE_SECRET']

手动设置生产中的这些变量可能很繁琐,但也可以通过宝石(如费加罗)轻松实现。这些宝石还可以为您将这些变量加载到您的生产环境中。 作为奖励,您可以通过这种方式在应用程序内设置任何变量,例如应用程序名称,邮件程序配置等。