在Rails中使用外部配置

时间:2014-09-05 12:18:32

标签: ruby-on-rails ruby configuration

是否有一些库或工具允许使用外部文件配置rails应用程序?

我希望数据库配置(默认情况下在config/database.yml中)和应用程序配置(在config/environments/*.rb中的特定于环境的文件中配置)在文件中(最好是yaml)不包含< / em>在项目中。

我知道这不是标准的做事方式,但有一些好处:

  • 文件可以存在于版本控制中的单独存储库中
  • 您可以对此存储库具有不同的访问控制(您可以隐藏生产配置)
  • 配置文件可以单独部署
  • 您可以在计算机上手动更改它们,并且在重新部署应用程序时不会覆盖它们
  • 您不必为每个部署环境设置不同的rails环境,但可以在该特定计算机上进行更改。
  • 您可以在应用程序之间共享配置

更好的解决方案是使用部分外部配置 - 这样您仍然可以在应用程序中使用基本配置,但会覆盖部分外部配置。

如果您在应用程序中复制外部配置文件,则可以执行此操作。这可以在加载rails之前在config/application.rb的开头完成,但它看起来像一个hack,并且难以维护。是否有一些实用的解决方案允许这个?

1 个答案:

答案 0 :(得分:0)

Dotenv非常出色,完全符合您的要求。它是非常常见的,也是保存共享文件机密的好方法。将它与env_bang-rails结合使用可获得一些额外的好处(默认值,未定义的失败等)

https://github.com/bkeepers/dotenv

https://github.com/jcamenisch/ENV_BANG/