Ruby on rails 在capistrano deploy.rb中加载app_config.yml

Ruby on rails 在capistrano deploy.rb中加载app_config.yml,ruby-on-rails,capistrano,Ruby On Rails,Capistrano,使用Rails 3.2和Capistrano 2。我有一个app_config.yml,我通过以下方式将其加载到应用程序: # config/app_config.yml global: &GLOBAL sitename: Shop # config/application.rb require File.expand_path('../boot', __FILE__) APP_CONFIG = YAML.load_file(File.expand_path('../app_con

使用Rails 3.2和Capistrano 2。我有一个
app_config.yml
,我通过以下方式将其加载到应用程序:

# config/app_config.yml
global: &GLOBAL
  sitename: Shop

# config/application.rb
require File.expand_path('../boot', __FILE__)
APP_CONFIG = YAML.load_file(File.expand_path('../app_config.yml', __FILE__))[Rails.env]

# call using this method
<%= APP_CONFIG["sitename"] %>
我也希望通过这种方式访问变量:
APP\u CONFIG[“sitename”]
,但在运行部署脚本时,我遇到以下错误:

./config/deploy.rb:4:in `load': uninitialized constant Capistrano::Configuration::Rails
(NameError) # points to the APP_CONFIG = YAML.load_file... line

如何正确加载
app\u config.yml
文件?

capistrano不需要任何rails代码

这就是为什么调用
APP\u CONFIG=YAML.load\u file(file.expand\u path('../APP\u CONFIG.yml',\u\u file\u))[Rails.env]
会引发异常


您需要将
Rails.env
替换为capistrano部署中使用的其他内容。根据您的设置,这可能是阶段性的,也可能只是“生产”。

capistrano不需要任何rails代码

这就是为什么调用
APP\u CONFIG=YAML.load\u file(file.expand\u path('../APP\u CONFIG.yml',\u\u file\u))[Rails.env]
会引发异常

您需要将
Rails.env
替换为capistrano部署中使用的其他内容。根据您的设置,这可能是阶段,也可能只是“生产”

./config/deploy.rb:4:in `load': uninitialized constant Capistrano::Configuration::Rails
(NameError) # points to the APP_CONFIG = YAML.load_file... line