Rails:放置配置变量的位置

时间:2013-02-11 13:27:25

标签: ruby-on-rails

我的团队正在维护Rails应用程序。之前的开发人员决定将一些配置变量(如facebook app id,twitter app id)作为env变量。但这不是很多才多艺。如果我们有两个应用程序(测试和生产),我们只能使用一个硬编码配置(或手动更改)。最好将这些变量放在版本控制中。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  4. 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"