看到 campo 项目中有将 一些配置信息写到一个单独文件中,于是效仿 @rei 的方式改写了代码,但在 capistrano部署时出了问题 在 /config/initializers/ 目录里添加了 00_config.rb 文件,文件里定义了 CONFIG 常量。 在 /config 目录里添加了 config.yml 文件,文件里写信息,但 capistrano 在部署时出了问题 因为 config.yml 文件中有一些密码信息,所以没有放到到 git 里,于是我在 capistrano 里写了一个 task 来软链接文件
task :copy_config_yml, :roles => :app do
run "ln -s /home/#{user}/script/config.yml #{release_path}/config/config.yml"
end
after 'deploy:update_code', "deploy:copy_config_yml"
capistrano 在 assets:precompile 时出错了,提示 uninitialized constant CONFIG 我猜想是 assets:precompile 加载时 config.yml 没有在项目目录里,如果不是在 deploy:update_code 之后软链接,那应该在什么时刻软连接。
campo 项目中用的 capistrano 是 v3,我还没有升级 capistrano ,用的是老版本 2。希望 @rei 指点一下。