1

私は写真のWebアプリケーションを作成しています。アプリを作成するために必要なすべての写真が入っているamazon s3バケットにアクセスできます。今のところ、画像をクラウドにアップロードするには、すべてAWSCarrierwaveで正しく設定しています。しかし、私は反対をしようとするのは難しい時を過ごしています。私はs3からファイルをダウンロードし、私のデータベースのPersonオブジェクトを作成します。私はこのような作業をしようとするカスタムレイクタスクを構築しました。ここでrakeタスクは次のとおりです。ActiveRecordを使用してCarrierwaveに画像を追加するにはどうすればよいですか?

desc 'Populate database with person s3 photos' 
task migrate_s3_photos_to_db: :environment do 
    s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'], credentials: Aws::Credentials.new(ENV["AWS_SES_ACCESS_KEY"], ENV['AWS_SES_SECRET_ACCESS_Key']) 
    s3.bucket(ENV['S3_BUCKET']).objects.each do |person| 
    name = person.key.gsub('.jpg', '').gsub('_',' ') 
    email = "#{name.scan(/\w+/)[0][0].downcase}" + "#{name.scan(/\w+/)[1].downcase}" + "@gmail.com" 

    ===================Problem========================== 
    Person.create(name: name, email: email, avatar: ?????????) 
    end 
end 

上記のタスクに問題が、私は私がアバターのフィールドに配置するようになってるかわからないんだということです。私は画像名(Andy Johnson.jpg)の文字列になるperson.keyを試しました。しかし、これは動作しません。

私はまた、carrierwaveが提供したPersonAvatarUploaderを作成しようとしましたが、これがどうなるかわかりません。誰もこれのような問題に遭遇しましたか?

答えて

関連する問題