0

私は環境変数を次の/etc/environmentように保存しています:

FACEBOOK_API_KEY=XXXXXXXXXXX
FACEBOOK_API_SECRET=XXXXXXXXXX

しかし、Rails を介して ENV 変数にアクセスすると、次のようになります。

ENV['FACEBOOK_API_KEY']
=> XXXXXXXXX\r

\rENV変数へのすべての呼び出しをクリーンアップせずにそれを取り除く方法に注意してください。

4

2 に答える 2

2

私の推測では、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

注意して、バックアップを作成し、ファイルを確認してください。

\r8 進ダンプを調べることで、ファイルに不正な文字が含まれていないことを確認できます。

od -c /tmp/environment

出力で何かを探し\rます。

于 2013-03-14T21:57:57.993 に答える
1

figaroを使用して ENV 変数を管理できます。

config/application.ymlバージョン管理にチェックインしてはならないファイルを作成します。

# config/application.yml
FACEBOOK_API_KEY:    XXXXXXXXXXX
FACEBOOK_API_SECRET: XXXXXXXXXX

変数は、慣れ親しんだ方法で利用できますENV['FACEBOOK_API_KEY']

代替手段はconfigatronです。

于 2013-03-14T21:51:06.593 に答える