Ruby on rails Rails应用程序无法在Heroku上编译,因为存在Desive secret_密钥

Ruby on rails Rails应用程序无法在Heroku上编译,因为存在Desive secret_密钥,ruby-on-rails,heroku,devise,Ruby On Rails,Heroku,Devise,我整晚都在尝试部署到Heroku,但我总是遇到同样的错误: 远程:-->为Rails资产准备应用程序>管道 远程:运行:rake资产:预编译 远程:rake中止! 远程:未设置designe.secret_密钥。请在Desive初始值设定项中添加以下内容: 远程:config.secret\u key='secret-token-string' 远程:请确保在安装Desive或设置密钥后重新启动应用程序 遥控器:!预编译资产失败。 遥控器:! 远程: 遥控器:!推送被拒绝,未能编译Ruby应用

我整晚都在尝试部署到Heroku,但我总是遇到同样的错误:

远程:-->为Rails资产准备应用程序>管道 远程:运行:rake资产:预编译 远程:rake中止! 远程:未设置designe.secret_密钥。请在Desive初始值设定项中添加以下内容: 远程:config.secret\u key='secret-token-string' 远程:请确保在安装Desive或设置密钥后重新启动应用程序

遥控器:!预编译资产失败。 遥控器:! 远程: 遥控器:!推送被拒绝,未能编译Ruby应用程序 远程: 远程:正在验证部署。。。 远程: 遥控器:!推送病毒性衬衫。 远程: 到 ! [远程拒绝]主机->主机预接收挂钩被拒绝 错误:无法将某些引用推送到

我还运行了以下命令来设置heroku的环境变量:

    figaro heroku:set -e production
这读取了我所有的固定值,包括SENDGRID和designe_SECRET_KEY

下面是我的application.yml文件减去固定值:

    SENDGRID_PASSWORD: ********
    SENDGRID_USERNAME: @heroku.com

    production:
      SECRET_KEY_BASE: secret token
      DEVISE_SECRET_KEY: secret token
这是我的designe.rb文件中的内容:

    config.secret_key = ENV['DEVISE_SECRET_KEY']

我在这个网站上查看了其他建议的解决方案,但不到两个月前,我在另一个应用程序上使用了Desive,而没有完成这些任务。我缺少什么吗?

准备部署它。我取消设置heroku环境变量,然后重置它们。我还通过ENV变量为开发和生产使用了一个令牌secret_key_base,将远程主机推送到Heroku,它编译并启动了。然后将数据库也迁移到Heroku。一切都很好

我的应用程序报告了相同的错误,但是,该问题是使用Figaro gem和rigid systemAdmin的组合造成的。在实现Figaro gem时,创建一个secrets.yml文件以分配身份验证令牌,然后将其适当地存储在.gitignore中,在尝试部署到heroku时可能会发生冲突,因为.gitignore阻止推送部署所需的secrets.yml文件凭据

具体来说,我使用以下gem和过程来解决冲突

gem“heroku_秘密”,github:“alexpeattie/heroku_秘密” 捆绑安装 git push heroku master-force 上述解决方案将在相关StackOverflow帖子中进一步解释:

此外,我在Rails 4.1中使用Figaro时遇到了多个问题;我在下面详细介绍了与secrets.yml管理相关的问题


希望这有帮助,谢谢

您必须在.gitignore中添加了application.yml。因此,请确保您已经通过GUI内部设置或使用Figaro手动设置了环境变量,并且在YAMLThe应用程序中没有对齐问题。该应用程序在Rails服务器上运行时,在开发过程中可以正常工作,没有任何挂断、身份验证、电子邮件、,或者其他事情。@CbaBhusal我确实使用了figaro来设置我的环境变量,并且我用命令heroku config确认了变量显示了与application.yml中相同的固定值。我在想可能会出现什么样的对齐问题?@CbaBhusal是的,我确实有application.yml in.gitignore。但是,我在github上将secrets.yml推送到了我的遥控器,但它没有实际值。