내 인생을 위해 기본 paperclip example의 작동 방식을 이해할 수 없습니다. 이 컨트롤러에 포함 된 하나의 라인, 그리고 그것은 단순히 그 S3에 이미지를 업로드하는 데 필요한 모든 얼마나 이해하지종이 클립 젬을 사용하여 S3에 이미지를 업로드하는 방법
@user = User.create(params[:user])
입니다. 예를 약간 변경 한 이유는 기본 레일 폼 도우미 대신 jquery file uploader을 사용하고 싶었 기 때문에 이미지가 내 컨트롤러에 게시되는 시점에 있었지만, params에서 이미지를 가져 와서 첨부 파일로 지정해야합니다.
Parameters: {"files"=>[#<ActionDispatch::Http::UploadedFile:0x132263b98 @tempfile=#<File:/var/folders/5d/6r3qnvmx0754lr5t13_y1vd80000gn/T/RackMultipart20120329-71039-1b1ewde-0>, @headers="Content-Disposition: form-data; name=\"files[]\"; filename=\"background.png\"\r\nContent-Type: image/png\r\n", @content_type="image/png", @original_filename="background.png">], "id"=>"385"}
내 JS는 매우 간단하다 : 여기 로그를보고 있어요 무엇
` $('#fileupload').fileupload({
dataType: 'json',
url: '/my_url',
done: function (e, data) {
console.log('done');
}
});`
나를 아는 것이 도움이 내가 게시에서 파일 데이터를 제거 할 수있는 방법입니다 것이 무엇 위에서 주어진 매개 변수를 클립에 전달합니다. 첨부 파일 속성에 File.open (...) 값을 지정해야하지만, 내 파일의 소스가 무엇인지 알 수는 없습니다.
나는 이것을 이해하려고 애쓰는 데 엄청난 시간을 들였고, 나는 그것을 얻지 못하는 것 같습니다. s3에 직접 업로드를 시도했지만 이벤트 체인이 끔찍한 혼란을 겪었으므로이 간단한 통과 예제를 먼저 완성하려고합니다. cna가 제공하는 모든 도움에 감사드립니다.
필자는이 점을 많이 알고 있지만 params가 Paperclip이 기대하는 모든 특성을 포함 할 것으로 기대할 수있는 이유를 알지 못합니다. 양식 도우미가이 문제를 처리하지 않는다면 이해할 수 있지만 양식 도우미를 사용하지 않으므로 해결 방법을 찾아야합니다. 일부 JS와 함께 OP를 편집했습니다. 감사합니다. –
제 제안은 jQuery없이 데모 프로그램으로 작업하게하는 것입니다. 그것이 성공적으로 작동하면 jQuery를 추가하십시오. 이 방법을 사용하면 단계별로 작업하는 것이 더 쉬워집니다. – joelparkerhenderson
블로그 게시물이 잘못되었습니다. 아마 구형 일거야. 단계를 수행 한 후에 오류가 발생했습니다. Paperclip RubyDoc에서 언급되지 않은 한 가지는 has_attached_file에': storage => : s3'을 추가하는 것입니다. 마치': s3_credentials'만으로도 충분하지만, 그렇지 않은 것처럼 들린다. – Chloe