【发布时间】:2010-02-01 21:29:08
【问题描述】:
我在 capistrano-ext gem 的多级模块的可变范围方面遇到了一些问题。我目前有,在config/deploy/staging.rb。
set(:settings) { YAML.load_file("config/deploy.yml")['staging'] }
set :repository, settings["repository"]
set :deploy_to, settings["deploy_to"]
set :branch, settings["branch"]
set :domain, settings["domain"]
set :user, settings["user"]
role :app, domain
role :web, domain
role :db, domain, :primary => true
我的config/deploy/production.rb 文件类似。这似乎不是很干燥。理想情况下,我想我希望所有内容都在 deploy.rb 文件中。如果在当前阶段设置了一个变量,那么一切都会很干净。
更新:我找到了解决方案。
我在deploy.rb中定义了这个函数:
def set_settings(params)
params.each_pair do |k,v|
set k.to_sym, v
end
if exists? :domain
role :app, domain
role :web, domain
role :db, domain, :primary => true
end
end
那么我的staging.rb 文件就是set_settings(YAML.load_file("config/deploy.yml")['staging'])
【问题讨论】: