2016-08-08 14 views
0

私は本当にこれに固執していますが、私はStackOverflowで答えを見つけようとしましたが、実際には何もできませんでした。 AWSパラメータを追加する前に、すべてがローカルで正常に動作していましたが、プロフィール上に画像をアップロードしないとまだ動作していました。fog必要な引数がありません:aws_access_key_id

主な問題>>工夫で

と、ArgumentError :: RegistrationsController#更新
欠落必要な引数は:(多分私の記憶が間違っているか、資格情報、または多分:ここ

がuser.rbあるaws_access_key_id私はすべてのAws_key_IDでファイルを開始いけない)

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    has_attached_file :avatar, 
    :styles => { 
     :medium => "300x300>", 
     :thumb => "100x100#" 
     }, 
    :default_url => "/images/:style/missing.png", 
    :url => ":s3_domain_url", 
    :path => "public/avatars/:id/:style_:basename.:extension", 
    :storage => :fog, 
    #Configuration for Amazon S3 
    :fog_credentials => { 
     provider: 'AWS', 
     region: 'Frankfurt', 
     aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"], 
     aws_secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"] 
    }, 
     fog_directory: ENV["FOG_DIRECTORY"] 

    validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ 
end 

GemFile:

gem 'paperclip', '~> 4.1' 
gem 'devise' 
gem 'aws-sdk' 
gem 'fog' 
gem 'figaro' 

application.yml

SECRET_KEY_BASE: 'XXXXXxxxxxxxxxxxxxxxxxxxxxxx' 
AWS_ACCESS_KEY_ID: 'xxxxxxxxxQ' 
AWS_SECRET_ACCESS_KEY: 'yxxxxxxx' 
EMAIL_LOGIN: '[email protected]' 
EMAIL_PASSWORD: 'xxxxxx' 
development: 
    FOG_DIRECTORY: demo-dev 
production: 
    FOG_DIRECTORY: demo-production 

secret.yml

development: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

test: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

私はproduction.rbファイルに何かを追加する必要がありますか?

あなたは私を助けるためにいくつかのアドバイスを見つけることを願っています:D

マーティン

答えて

1

ねえ避難所「fog_credentialsをロードするときに正しく設定なので、それは次のようになります。

config = YAML::load_file('config/application.yml') 
... 
:fog_credentials => { 
    provider: 'AWS', 
    region: 'Frankfurt', 
    aws_access_key_id: config["AWS_ACCESS_KEY_ID"], 
    aws_secret_access_key: config["AWS_SECRET_ACCESS_KEY"] 
} 
... 

あなたのための避難所」どのenv変数を設定しても、それをapplication.ymlで既に定義しているので、ロードするだけです。

+0

これはうまくいきました。その部分のために働いた;) –

+0

は最終的に地域を変更し、すべてが正常に働いていた –

+0

それを聞いて幸せ:) @MartinRails –

関連する問題