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`
知道我在这里做错了吗?
答案 0 :(得分:1)
我知道这对你来说太迟了,但我想我会发一个答案,因为它可能对别人有用。
众所周知,在源代码中保留密钥,API密钥等是不好的做法。到目前为止,最好的方法是使用您在应用程序之外设置的环境变量。您可以通过以下方式使用这些变量:
config.secret_key = ENV['DEVISE_SECRET']
手动设置生产中的这些变量可能很繁琐,但也可以通过宝石(如费加罗)轻松实现。这些宝石还可以为您将这些变量加载到您的生产环境中。 作为奖励,您可以通过这种方式在应用程序内设置任何变量,例如应用程序名称,邮件程序配置等。