0

Rails アプリケーションから送信されたメールに対して、SendGrid を介してリダイレクトを設定しています。ただし、資格情報を保存するように言われた方法にはあまり満足していません。

そこで指定されているため、 config/environment.rb ファイルの ActionMailers のデフォルトを上書きすることを提案しています。前任者が以前の設定を定義した initializers/smtp.rb ファイルを作成したことがわかりましたが、このファイルを発見したことで、SMTP パスワードを発見しました...

これらのファイルのいずれかを変更すると、git リポジトリにアクセスできるすべての人が資格情報にアクセスできるようになります (フロントエンドおよびバックエンドのフリーランスを含む)。

サーバーの共有フォルダー (database.yml ファイルなど) に残り、capistrano のおかげで展開するたびにアプリにシンボリック リンクされるファイルを作成することを考えていました。

どう思いますか?このinitializers/smtp.rbをサーバーの共有フォルダに移動し、デプロイ時にシンボリックリンクするだけでよろしいでしょうか?

4

2 に答える 2

1

私の提案(私が見たこと):

APIキーと機密情報を。のyml下のファイルに移動しますconfig/

このymlファイルを変数にロードします。

KEYS = YAML::load(File.open("#{RAILS_ROOT}/config/config.yml"))

出来上がり。

また、たとえばGitHubにコードを配置する場合、これconfig.ymlはに追加するものになります.gitignore。代わりに、を作成し、config-example.yml開発者に独自のキーやパスワードなどを取得して、ローカルに保存するように指示しますconfig.yml

于 2012-07-06T15:35:05.650 に答える
1

*nix を使用している場合は、環境変数が最適な方法です

次のように、変数を .bashrc ファイルに貼り付けます。

// no need for quotation marks
export GMAIL_USER=my_gmail_user_name@gmail.com
export GMAIL_PASSWORD=my_gmail_password

そして、smtp イニシャライザで次のように呼び出します。

ActionMailer::Base.smtp_settings = {
  :user_name            => ENV['GMAIL_USER'],
  :password             => ENV['GMAIL_PASSWORD']
} 

bash と Rails アプリを再起動します。すべてが機能するはずです。Heroku には、ネットワークで環境変数を使用する方法に関する優れた記事があります。

于 2012-07-06T15:41:21.390 に答える