Rails 4:未设置Devise.secret_key

时间:2015-10-13 01:24:24

标签: ruby-on-rails ruby-on-rails-4 heroku devise asset-pipeline

这似乎是一个受欢迎的问题,因为我在Stack Overflow上发现了很多类似的问题:

但是,上述情况似乎都没有帮助解决我的问题。

以下是我的情况:

  1. 我使用font-awesome-rails gem安装了Font Awesome,它在本地工作,但每当我部署到Heroku时,Font Awesome图标就不再出现了。
  2. 所以,我找到了解决这个问题的答案,并发现我需要运行RAILS_ENV=production bundle exec rake assets:precompile来使事情有效。
  3. 但是,当我运行此命令时,我在终端中收到以下错误:
  4. rake aborted! Devise.secret_key was not set. Please add the following to your Devise initializer: config.secret_key = '—— MY_SECRET_KEY_HERE ———' Please ensure you restarted your application after installing Devise or setting the key.

    根据我在问题开头提到的问题中提供的解决方案,config.secret_key = ENV['DEVISE_SECRET_KEY'] if Rails.env.production?

    中有devise.rb

    另外,as recommended here,我确实运行了heroku config:set DEVISE_SECRET_KEY='—— MY_SECRET_KEY_HERE ———' -- app name_of_my_app_here

    因为我不确定,我也运行heroku config:set DEVISE_SECRET_KEY=—— MY_SECRET_KEY_HERE ——— -- app name_of_my_app_here(我的密钥周围没有单引号)。

    但这些都不起作用。

    我不断收到同样的错误。

    我做错了什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。

我没有继续使用font-awesome-rails gem,而是将其卸载并替换为font-awesome-sass,这是rails的官方Font Awesome宝石。

Following the guidelines offered here(部分: EASY:SASS Ruby Gem ),然后我运行bundle并添加:

@import "font-awesome-sprockets";
@import "font-awesome";

到我的application.scss文件。

我还从同一个文件中删除了旧的@import "font-awesome.css";行。

现在,Font Awesome在本地和Heroku都有效。