0

ユーザーがサインアップしたときにウェルカム メールを送信する非常に単純な Rails アプリがあります。Gmail アカウントを使用してメッセージを送信しています。以下に示すように、Gmail アカウントのパスワードをアプリに保存しています。

アプリケーション.rb

require File.expand_path('../boot', __FILE__)

require 'rails/all'

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

ENV.update YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))

module TestMailApp
  class Application < Rails::Application

    config.action_mailer.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :domain               => "my address",
      :user_name            => "my_gmail_name",
      :password             => ENV["MAIL_PASSWORD"],
      :authentication       => :plain,
      :enable_starttls_auto => true
    }

    config.action_mailer.default_url_options = {
      :host => "my address"
    }   


アプリケーション.yml

MAIL_PASSWORD: "my_password"


git リポジトリの application.yml ファイルに保存されているパスワードを非表示にしたいと考えています。application.yml を gitignore ファイルに追加しようとしましたが、アプリがクラッシュするだけです。

このパスワードを git リポジトリで非表示にして、アプリが引き続き機能し、アプリをプライベート リポジトリに配置する必要がないようにするにはどうすればよいですか?

4

3 に答える 3

4

基本的にできません。この種の情報は、サーバー上の環境変数として、または git に追加しない構成ファイルに保存するのが最適です。

于 2013-07-14T18:36:48.643 に答える