【问题标题】:Can't push to Heroku because of DOTENV uninitialized constant error由于 DOTENV 未初始化常量错误,无法推送到 Heroku
【发布时间】:2016-12-08 09:40:10
【问题描述】:

我正在尝试将我的项目推到 Heroku。我一直在使用:

    gem 'dotenv-rails', :groups => [:development, :test]

因为我正在使用 recpatcha 并且需要将我的密钥导出到正在开发的应用程序。

当我尝试将代码推送到 heroku 时,我注意到此错误消息:

    remote:  !     NameError: uninitialized constant Dotenv

所以我注释掉了应用程序中的 Dotenv gem 和任何 Dotenv 变量。我跑了

    $ bundle exec rake -P

然后再次尝试推送。我仍然从 Heroku 收到同样的错误。我是否需要以某种方式重置我的 gemfile?

【问题讨论】:

  • 问题是我的 dotenv 工作正常,并且我已经使用键设置了我的 heroku 配置,只是当我推送到 heroku 时,我得到了未初始化的常量错误。
  • 从上面提到的答案中看到这条评论:stackoverflow.com/questions/23439148/…
  • 我不确定如何使用 init 文件将 dotenv 加载到生产环境中,您能解释一下那里的含义吗?
  • 好的。在您的rails_project/cofig/ 中创建一个文件并将其命名为dotenv_load.rb 到这个新文件中粘贴此代码require 'dotenv' Dotenv.load。然后在你的项目中找到secret_key_base。复制secret_key_base 的值并将其粘贴到boot.rb 中,如下所示ENV["SECRET_KEY_BASE"] = "YOUR SECRET KEY BASE"

标签: ruby-on-rails heroku recaptcha uninitialized-constant


【解决方案1】:

好的,所以最后的答案是我需要改变

    gem 'dotenv-rails', :groups => [:development, :test]

    gem 'dotenv-rails', :require => 'dotenv/rails-now'

我认为这是您在@ABPrime 那里建议的另一种方式。非常感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    相关资源
    最近更新 更多