您好我正在为用户上传图片制作应用。我正在尝试添加Amazon S3以准备部署我的应用程序。我没有收到任何错误,但在尝试设置Amazon S3后,我的照片无法正常上传。这些照片正在上传到亚马逊上,而不是我的数据库中,所以当我上传照片并尝试在视图中循环显示它们时,没有任何显示。任何人都可以帮助我吗?
正如旁注,我正在使用Paperclip + jQuery文件上传(用于多张图片上传)+ Amazon S3 +一个s3_direct_upload gem(https://github.com/WayneHoover/s3_direct_upload)
配置路由(注意pics嵌套在相册和用户中)没有问题
Pholder::Application.routes.draw do
resources :users do
resources :friends
resources :albums do
resources :photos
end
end
end
users / 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 %>
photos / 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
如果您需要我上传更多代码,请告诉我。请帮忙!
答案 0 :(得分:1)
JQuery文件上传只是将文件上传到Amazon S3:它不会将所需的Paperclip记录添加到数据库中。为此,您需要执行更多步骤。请参阅jquery-fileupload-rails-paperclip-example或jQuery File Upload v4 for Rails 3。