私はYAMLファイルを使用して、機密の設定データを保存しています。私は開発環境でそのファイルを使用しています。プロダクションではENV変数を使用しています。ここでYAMLファイルが存在しないか、Railsにロードできない場合のレスキュー
は、私が今やっているものです:
私はこのようになります設定/ confidental.ymlファイル、持っている:
email:
user_name: 'my_user'
password: 'my_passw'
を私は設定/環境/ 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ファイルが存在することを確認してください可能性があり、ロードすることができ、そうでない場合は?それはどこに置かれるべきですか?
感謝を:
よりよい解決策は、その後、最初のファイルを開いてみてくださいその後例外から回復することです。私はconfig /環境/イニシャライザも正しいと思いますか? –
rubocopがFile.existを提案するようになりましたか? File.existsの代わりに(複数ではない)? –