Ruby on rails Heroku prod和x27是否都有密钥解决方案;n&;本地开发人员';t环境?

Ruby on rails Heroku prod和x27是否都有密钥解决方案;n&;本地开发人员';t环境?,ruby-on-rails,heroku,environment-variables,secret-key,Ruby On Rails,Heroku,Environment Variables,Secret Key,我正在努力寻找存储密钥的最佳解决方案(特别是S3和Desive密钥是我正在尝试设置的密钥),这将使我的应用程序能够在本地和Heroku上运行。到目前为止,我的研究(几乎一整天都在这方面:()向我展示了许多选择,但我对每个选择都有问题,我在下面概述: 选项1)使用.git.rails 4.1提供的secrets.yml文件在开发中非常可爱,您只需在您的模型的s3凭据中使用rails.application.secrets.\u secret,一切都很好。但是,当推到Heroku时,需要为每个变量

我正在努力寻找存储密钥的最佳解决方案(特别是S3和Desive密钥是我正在尝试设置的密钥),这将使我的应用程序能够在本地和Heroku上运行。到目前为止,我的研究(几乎一整天都在这方面:()向我展示了许多选择,但我对每个选择都有问题,我在下面概述:

  • 选项1)使用.git.rails 4.1提供的secrets.yml文件在开发中非常可爱,您只需在您的模型的s3凭据中使用
    rails.application.secrets.\u secret
    ,一切都很好。但是,当推到Heroku时,需要为每个变量设置
    Heroku config:set key=value
    ,这本身很好,但随后需要将
    Rails.application.secrets…
    语法替换为
    ENV['key']
    ,这会导致Rails designed secrets.yml和相应的nice语法无法使用。我能看出这一点的唯一方法是在本地和heroku上设置
    ENV
    ,这有点乏味,而且它不会使用rails designed secrets.yml文件

  • 选项2)使用gem“figaro”是很好的,因此gem为您设置了一个application.yml文件,而.git会为您忽略它,并提供一个方便的rake命令来批量创建Heroku
    ENV
    。但我无法理解,在本地开发和heroku生产环境中使用相同的应用程序版本,而不必在每个环境中再次设置
    ENV
    。好的,figaro通过其rake命令在heroku上加快了设置
    ENV
    ,但它仍然使secrets.yml无效,并且涉及到为每个环境中的每个键设置
    ENV

  • 选项3)我发现了另一块宝石
    gem'heroku_secrets',github:'alexpeatie/heroku secrets'
    旨在让我们的生活更轻松。这种宝石类似于费加罗,为批量设置Heroku
    ENV
    s提供了一种新的选择。但我想这仍然给我们留下了同样的问题,那就是
    ENV
    的设置无处不在。然而,我甚至不能用这个gem走这么远,当我试图使用它时,我遇到了这个错误消息

    git://github.com/alexpeattie/heroku_secrets.git (在master)尚未签出。首先运行
    bundle安装

无论是
bundle
还是
bundle install
在这里都不做任何事情,搜索问题都会让我尝试
bundle install--deployment
,它不是识别和解决问题,而是通过将我的所有gem放在供应商目录中,而不是通过设置id来提供解决方案,所以我放弃了那个改变

  • 其他选项)dotenv未尝试,foreman未尝试,在rails.initialize之前预加载包含vars的文件,尝试过,但不喜欢
经过今天所有的搜索、播放、尝试实现和重新实现上述的变化以及更多,我仍然不知道如何让这个应用程序以一种体面的方式在heroku和本地开发环境上运行。当然,我希望在使用secrets.yml rails的同时实现这一点,而不需要太多的定制,但我会做我需要做的事情来实现这一点。我在这个开发者的事情上是个大三学生,所以我花的时间比大多数人都长,但是这真的让我很难受,我的头牢牢地掌握在我的手中,请求一些帮助,请给我光明哦编程天才

以下是我找到、阅读并尝试实现的其他一些链接,如果对本主题有任何帮助:

Heroku的配置手册页:

密切相关的问题

关于各种解决办法的文章

另一篇关于各种解决办法的文章

捆绑包“未签出”错误

然而,尽管进行了所有这些讨论,我似乎无法找到一种方法,在不手动设置
ENV
s的情况下,使其在本地开发环境和heroku生产环境中工作。有什么办法吗?如果有,请告诉我