2012-04-28 10 views
5

現在、最新のaws-sdk推奨のgemでPaperclipを設定しようとしています。私S3.ymlファイルでレールでS3.ymlのENV変数を認識しない

私はこの

development: 
    bucket: newmeeter-dev 
    access_key_id: ENV['S3_KEY'] 
    secret_access_key: ENV['S3_SECRET'] 

のようなものを持っている。しかし、それはENV変数を認識していません。次のエラーが表示されます

AWS::S3::Errors::InvalidAccessKeyId in PhotosController#create 

The AWS Access Key Id you provided does not exist in our records. 

アクセスとシークレットの両方をファイルに直接書き込もうとすると、完全に動作します。同時に、私は両方のENV変数をビューに表示しようとしましたが、コンソールでは値は大丈夫です。

なぜ私はそれを認識していないのですか?

答えて

9

解決済み!

私はここ Ruby on Rails: Can you put Ruby code in a YAML config file?

この質問への回答は解決策が見つかりました:YAMLファイルはERB形式のコードを理解しています。

<%=%>の内部にENV変数を出力します。

access_key_id: <%= ENV['S3_KEY'] %> 
secret_access_key: <%= ENV['S3_SECRET'] %> 
+0

うわー、ちょうど私を時間を節約しました。ありがとう! –

+0

最近彼らはこれを変えましたか? '<%= ENV ['something'] $>'はENV ['something'] "'と評価されています。 – Noz

+0

@Nozこのリンクを使用するhttp://stackoverflow.com/questions/3277428/ruby-on-rails-can-you-put-ruby-code-in-a-yaml-config-file – JehandadK

関連する問題