私は環境変数を次の/etc/environment
ように保存しています:
FACEBOOK_API_KEY=XXXXXXXXXXX
FACEBOOK_API_SECRET=XXXXXXXXXX
しかし、Rails を介して ENV 変数にアクセスすると、次のようになります。
ENV['FACEBOOK_API_KEY']
=> XXXXXXXXX\r
\r
ENV変数へのすべての呼び出しをクリーンアップせずにそれを取り除く方法に注意してください。
私は環境変数を次の/etc/environment
ように保存しています:
FACEBOOK_API_KEY=XXXXXXXXXXX
FACEBOOK_API_SECRET=XXXXXXXXXX
しかし、Rails を介して ENV 変数にアクセスすると、次のようになります。
ENV['FACEBOOK_API_KEY']
=> XXXXXXXXX\r
\r
ENV変数へのすべての呼び出しをクリーンアップせずにそれを取り除く方法に注意してください。
私の推測では、Windows テキスト エディターを使用して\r
編集/etc/environment
し、Unix システムにインストールしている (または、Windows で Cygwin を使用している可能性がありますが、同じことが当てはまります)。または、それを行ったソースからコピー/貼り付けました。いずれにせよ、LF 行末のみを必要とする Unix ファイルに CRLF が導入されています。
エディタの場合は、Windows CRLF ( \r\n
) 行末の使用を停止し、Unix LF ( \n
) 行末を使用するように修正する必要があります。Notepad++ には、他の多くのエディターや IDE と同様に、このためのオプションがあります。あなたのためにグーグルして、Unixの行末の使い方を見つけてください。そうしないと、このような問題が山ほど発生します。
dos2unix
(Unix システムでは、パッケージをインストールする必要がある場合があります) のようなプログラムを実行するか、tr
次のような単純なコマンドを使用して、既存のファイルを修正できます。
mv
編集:以下のコマンドでファイル名の順序を修正しました。
tr -d '\r' </etc/environment >/tmp/environment
# <verify new file looks good>
mv /tmp/environment /etc/environment
注意して、バックアップを作成し、ファイルを確認してください。
\r
8 進ダンプを調べることで、ファイルに不正な文字が含まれていないことを確認できます。
od -c /tmp/environment
出力で何かを探し\r
ます。
figaroを使用して ENV 変数を管理できます。
config/application.yml
バージョン管理にチェックインしてはならないファイルを作成します。
# config/application.yml
FACEBOOK_API_KEY: XXXXXXXXXXX
FACEBOOK_API_SECRET: XXXXXXXXXX
変数は、慣れ親しんだ方法で利用できますENV['FACEBOOK_API_KEY']
。
代替手段はconfigatronです。