加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如果YAML文件不存在或无法在Rails中加载,则进

发布时间:2020-12-16 21:28:30 所属栏目:百科 来源:网络整理
导读:我使用YAML文件来存储一些机密配置数据.我只是在开发环境中使用该文件.在生产中我使用ENV变量. 这就是我现在正在做的事情: 我有一个config / confidenceal.yml文件,看起来像这样: email: user_name: 'my_user' password: 'my_passw' 我有一个config / envi
我使用YAML文件来存储一些机密配置数据.我只是在开发环境中使用该文件.在生产中我使用ENV变量.

这就是我现在正在做的事情:

我有一个config / confidenceal.yml文件,看起来像这样:

email:
  user_name: 'my_user'
  password: 'my_passw'

我有一个config / environments / development.rb文件(除其他东西外)有这些行:

# Mailer config
  email_confidential = YAML.load_file("#{Rails.root}/config/confidential.yml")['email']
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",:port                 => 587,:domain               => 'baci.lindsaar.net',:user_name            => email_confidential['user_name'],:password             => email_confidential['password'],:authentication       => 'plain',:enable_starttls_auto => true  }

我的问题是:我如何确保YAML文件存在并且可以加载,如果没有抛出一些异常?应该放在哪里?

解决方法

为什么不
unless File.exists? ("#{Rails.root}/config/confidential.yml")
  # do what you want (throw exception or something) 
end

顺便说一下,我认为将配置yaml加载到初始化器是个好主意.例如

# config/initializers/load_project_config_file.rb

if File.exists? ("#{Rails.root}/config/project.yml")
  PROJECT = YAML.load_file("#{Rails.root}/config/project.yml")
else
  PROJECT = {}
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读