私は、Rails 3.2.6、Devise、および Paperclip を一緒に楽しくプレイできない悲しい人々の 1 人です。私は通常の HTML フォームを使用してテストし、ユーザーを作成し、同時にアバターをアップロードしています。ログによると、すべて問題ないように見えますが、画像は Amazon S3 にアップロードされておらず、画像の詳細はユーザーに保存されていません。
これは、送信直後の Heroku ログからの出力です。
2012-08-16T20:29:16+00:00 app[web.1]: Started POST "/api/v1/users" for 90.224.160.143 at 2012-08-16 20:29:16 +0000
2012-08-16T20:29:16+00:00 app[web.1]: Processing by Api::V1::UsersController#create as JSON
2012-08-16T20:29:16+00:00 app[web.1]: Parameters: {"email"=>"eee@eee.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "username"=>"eee", "avatar"=>#<ActionDispatch::Http::UploadedFile:0x000000060fa310 @original_filename="farmer.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"avatar\"; filename=\"farmer.png\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:/tmp/RackMultipart20120816-2-1oz8ytm>>}
2012-08-16T20:29:16+00:00 app[web.1]: [paperclip] Saving attachments.
2012-08-16T20:29:16+00:00 app[web.1]: [paperclip] Saving attachments.
2012-08-16T20:29:16+00:00 app[web.1]: [paperclip] Saving attachments.
これは、User モデルで使用するアタッチメント コードです。
has_attached_file :avatar,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:bucket => "appprofilepictures",
:styles => { :medium => "300x300>", :thumb => "100x100>"},
:path => 'photos/:id/:style/:id.:extension'
これは attr_accessible です:
attr_accessible :avatar, :firstname, :lastname, :username, :email, :password, :password_confirmation, :remember_me, :authentication_token
これは私のhtmlフォームコードです:
<form name='profile' action='http://example.com/users' method='post' enctype="multipart/form-data">
<input type="text" name="email" />
<input type="text" name="password" />
<input type="text" name="password_confirmation" />
<input type="text" name="username" />
<input type="file" name="avatar" />
<input type="submit" value="Send" />
</form>
Heroku コンソールを使用してユーザーを手動で作成し、アップロードします。