2012-10-20 69 views
1

嗨我目前正在爲用戶上傳圖片的應用程序。我正在嘗試添加Amazon S3以準備部署我的應用。我沒有收到任何錯誤,但在嘗試設置Amazon S3後,我的照片無法正常上傳。圖片正常上傳到亞馬遜上,而不是在我的數據庫中,所以當我上傳圖片並嘗試在視圖中循環顯示它們時,沒有任何內容顯示。任何人都可以幫我嗎?Rails:Amazon S3 + Paperclip不在數據庫中存儲任何東西?

正如阿里納斯,我使用回形針+ jQuery的文件上傳(多PIC上傳)+亞馬遜S3 +一個s3_direct_upload寶石(https://github.com/WayneHoover/s3_direct_upload)

配置路線(請注意,圖片嵌套在專輯和用戶),在這裏沒有問題

Pholder::Application.routes.draw do 
resources :users do 
    resources :friends 
    resources :albums do 
    resources :photos 
    end 
end 
end 

用戶/ show.html.erb(即是爲了顯示我的上傳圖片的頁面,沒有新的照片是顯示即使我上傳了)

<% @user.albums.each do |album| %> 
     <div class="albumthumb"> 
      <%= link_to image_tag(!album.photos.empty? ? album.photos.first.avatar.url(:medium) : ("questionmark.png"), :size => "150x150"), user_album_path(@user, album) %> 
      <br> 
      <%= album.name %> 
     </div> 
    <% end %> 

照片/ new.html.erb(問題在這裏也)

#my new uploader that works with amazon s3, but doesn't seem to be storing the pics in my database 
<%= s3_uploader_form post: user_album_photos_path, as: "photo[avatar]", id: "myS3Uploader" do %> 
    <%= file_field_tag :file, multiple: true %> 
<% end %> 

#this is my old upload form that worked fine when uploading pics to my local public directory. 
# 
#<% provide(:title, "Upload pictures") %> 
# 
#<%= form_for([@user, @album, @photo], :html => { :multipart => true }) do |f| %> 
# 
#<%= f.file_field :avatar, multiple: true, name: "photo[avatar]" %> 


<div id="pics"> 
    <%= render :partial => "photo", :collection => @photos %> 
</div> 

<script id="template-upload" type="text/x-tmpl"> 
<div class="upload"> 
    {%=o.name%} 
    <div class="progress"><div class="bar" style="width: 0%"></div></div> 
</div> 
</script> 

這裏是我的代碼在GitHub上:https://github.com/EdmundMai/railstest/blob/master/app/views/photos/new.html.erb

讓我知道,如果你需要我上傳任何代碼。請幫忙!

回答

1

JQuery文件上傳只是將文件上載到Amazon S3:它不會將所需的Paperclip記錄添加到數據庫。要做到這一點,你需要做更多的步驟。請參閱jquery-fileupload-rails-paperclip-examplejQuery File Upload v4 for Rails 3

+0

謝謝馬克斯,我現在檢查一下,讓你知道在幾分鐘內 – Edmund

+0

你可能給我一些指導,我應該看看mvc的哪一部分? html表單對我來說看起來相當複雜。你建議我停止使用s3_direct_upload gem嗎? – Edmund

+0

使用通常的表單上傳方法與Paperclip進行交互肯定更容易。然而,JQuery文件上傳確實有很多精巧的功能,比如多次上傳,拖放,進度指示等等。所以如果你想要這些功能,那麼添加額外的Javascript代碼來使它與Paperclip一起工作可能是值得的。 –

相關問題