我可能会建议使用共享的 YAML 文件来存储这种配置,并单独加载它。例如,有一个名为类似 的文件config/settings.yml
,其中包含以下内容:
:callback_url: "http://somecallbackurl.com:12345/bla"
在config/deploy.rb
中,您可以:
settings = YAML.load_file('config/settings.yml')
set :callback_url, settings[:callback_url]
在 中config/initializers/settings.rb
,您可以:
settings = YAML.load_file('config/settings.yml')
CALLBACK_URL = settings[:callback_url]
最后,在 中app/controllers/myapp.rb
,您将执行以下操作:
def get_callback_url
CALLBACK_URL
end
使用共享 YAML 文件只是我想到的第一件事。另一种方法是在 ruby 文件中定义一些常量,并在初始化程序和deploy.rb
. 基本思想是你并不真的希望你的应用程序依赖于你的 capistrano 环境,所以你应该找到一种方法来分离共享配置。