質問

思ったなテーマについてSMTPユーザー名とパスワードActionMailer、実際の開発/生産)configファイルとは何ですか?いい店で暗号化されている場合は、最低限、除外からの私のMercurial押.

現在、私を取り除くだけで、パスワードからソースファイルを行う前にプッシュがありになってしまったんマは私が使っている.:)

もう大切に保管してくださのデータベースとして他のユーザーであるにすでに格納されていると暗号化されたパスワード)を取得すのでprogramatically?

役に立ちましたか?

解決

アプリケーション構成ファイルを使用する リポジトリに保存されていないもの 機密情報を保存するため。私がやった方法は次のとおりです。

  1. を追加 app_config.yml あなたの中で config ディレクトリ。その内容は次のようになります。

    smtp_password: kl240jvfslkr32rKgjlk
    some_other_password: 34hg9r0j0g402jg
    and_so_on: lkn$@gJkjgsFLK4gaj
    
  2. 追加 preinitializer.rb あなたの中で config 次の内容のディレクトリ:

    require 'yaml'
    APP_CONFIG = YAML.load(File.read(RAILS_ROOT + "/config/app_config.yml"))
    
  3. の値をパスワードに置き換えます。 APP_CONFIG 変数、次のように:

    smtp_password = kl240jvfslkr32rKgjlk # old version
    smtp_password = APP_CONFIG['smtp_password'] # new version
    

含めないように注意してください app_config.yml ただし、そこに含まれる内容のサンプルを示すために、チェックインされるサンプル ファイルを作成することもできます。アプリケーションをデプロイするときは、次のことを確認してください。 app_config.yml サーバーに保存されます。標準の Capistrano デプロイメントを使用している場合は、ファイルを共有フォルダーに置き、デプロイメント タスクを更新して、現在のリリースのディレクトリにそのファイルへのシンボリック リンクを作成します。

他のヒント

ジミーズの答えは完璧な(+1)、また、Githubにはお勧めします。gitignoreファイルのためのすべての言語でのレールは こちらの ご注意このconfig/*.ymlないようにconfig/ymlファイルのrespository。います。

使用カピストラーノへのお願いこの際展開:設定と同じ方法で行うことやるべきことだと思いデータベース。

task :my_silly_task do 
    sendgrid_password = Capistrano::CLI.password_prompt("Sendgrid password: ")
    require 'yaml'
    spec =  {... whatever yaml you need -- probably what Jimmy said...}
    run "mkdir -p #{shared_path}/config" 
    put(spec.to_yaml, "#{shared_path}/config/mailer_config.yml") 
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top