我正在部署我的rails應用程序與capistrano和使用瘦服務器。我在〜/ .bash_profile中使用export SMTP_USERNAME=...
定義了我的郵件用戶名和密碼的2個env vars。瘦服務器不加載與Capistrano的環境變量
當我ssh到服務器,並嘗試從軌道控制檯發送電子郵件時,它工作正常,但它看起來像他們沒有通過瘦加載時運行cap deploy
或任何其他命令。
什麼是定義它們的正確方法?我看過一些帖子,他們建議直接在config/environments/production.rb
或其他與代碼本身相關的文件中定義它們。出於安全原因,我試圖避免這種情況。
更新:我試圖用一個YML文件來存儲這一點,但我遇到了這樣的問題:
我config/initializers
創建一個新文件email_config.rb
。其內容是:
EMAIL_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/email.yml")[RAILS_ENV]
在config/email.yml
我:
production:
username: username
password: password
在我config/environments/production.rb
我:
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
authentication: :plain,
enable_starttls_auto: true,
user_name: EMAIL_CONFIG[:username],
password: EMAIL_CONFIG[:password]
}
現在的問題是,初始值設定項environments.rb
加載後,如果我把在我的電子郵件配置之前定義了EMAIL_CONFIG
變量,那麼RAILS_ROOT
變量不是defin即