0

私はアプリに Twilio を使用しており、本番環境では heroku の CLI を使用して認証トークンを設定しています。sms-spec( https://github.com/monfresh/sms-spec ) を使用して、アプリの Twilio 統合をローカルでテストしています。ENV['TWILIO_AUTH_TOKEN']テスト環境でトークンを設定したい。

変更を加えるたびにガードを使用してテストを自動実行するので、テストを実行するたびに ENV 変数を手動で設定する必要はありません。また、セキュリティ上の理由から、トークンをソース コードに入れたくありません。

ローカル テスト環境の ENV 変数を、ソースではなく永続的になるように設定する方法はありますか? これを調査するのに数時間を費やしましたが、これを行う方法の適切な説明が見つからないようです。どんな助けでも大歓迎です:)

4

1 に答える 1

1

2 つのアプローチ:

  1. Dotenv( link )のような宝石を使用します。これは、開発用のほとんどのアプリケーションで使用するアプローチです。gem ファイルに gem を含め、バンドルをインストールしてから、環境変数の設定を .xml という最上位ファイルに保存するだけです.env。Rails サーバーを再起動すると、ENV が自動的に読み込まれます。非常に使いやすく便利です。
  2. ENV 部分に柔軟に対応でき、Rails 4.1 以降を実行している場合は、config/secrets/yml. これは、Rails 4.1 リリース ノートのセクション 2.2 に詳しく記載されています。したがって、あなたの場合、次のように設定します。

    開発: twilio_auth_token: verysecretstring

次に、イニシャライザで、 を参照する代わりにENV['TWILIO_AUTH_TOKEN']を使用しますRails.application.secrets.twilio_auth_token。私はこれを自分で試したことはありませんが、個別の gem よりもネイティブの Rails 機能を使用したいので、リストに載せています。

もちろん、秘密を含むファイルは慎重に保護する必要があります。.gitignore少なくとも、シークレットがコード リポジトリに侵入しないように、必ず in を含めてください。

于 2015-07-02T23:59:30.623 に答える