0

我的团队正在维护一个 Rails 应用程序。以前的开发人员决定将一些配置变量(如 facebook 应用程序 ID、Twitter 应用程序 ID)作为环境变量。但这不是很通用。如果我们有两个应用程序(测试和生产),我们将被迫只使用一个硬编码配置(或手动更改它)。将这些变量放在版本控制中也是一种很好的做法。

这是正确的方法吗?如果没有,正确的方法是什么?

4

1 回答 1

1

我们在 2 个应用程序中使用以下解决方案。

  1. 将配置变量存储在https://github.com/railsjedi/rails_config gem的 yml 文件中。

  2. 应用程序被配置为通过初始化程序在生产和开发模式下使用不同的 yml 文件。

  3. 在生产服务器上,带有 yml 文件的目录与 2 个应用程序进行符号链接。

capistrano 的任务看起来是这样的:

namespace :settings do
  task :symlink, roles: :app do
    run "ln -s /path_to_settings/#{rail_env} #{current_path}/config/settings"
  end
end

after "deploy:create_symlink", "settings:symlink"
于 2013-02-11T13:36:31.067 回答