簡體   English   中英

在capistrano deploy.rb中加載app_config.yml

[英]Load app_config.yml in capistrano deploy.rb

使用Rails 3.2和Capistrano2。我有一個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"] %>

我想在Capistrano的部署腳本中加載相同的app_config.yml ,這樣就不必再次重新設置變量:

# config/deploy.rb
require "bundler/capistrano"

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

set :stages, %w(production staging)

我希望也使用這種方式訪問​​變量: APP_CONFIG["sitename"] ,但是在運行部署腳本時,出現以下錯誤:

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

如何正確加載app_config.yml文件?

capistrano不需要任何rails代碼。

這就是為什么調用APP_CONFIG = YAML.load_file(File.expand_path('../app_config.yml', __FILE__))[Rails.env]引發異常的原因。

您需要用Rails.env部署中使用的其他東西替換Rails.env 根據您的設置,這可能是階段,也可能只是"production"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM