1

こんにちは私は現在、ユーザーが写真をアップロードするためのアプリを作成しています。アプリをデプロイする準備としてAmazonS3を追加しようとしています。エラーは発生しませんが、Amazon S3をセットアップしようとした後、写真が正しくアップロードされません。写真はデータベースではなくAmazonに正しくアップロードされているので、写真をアップロードしてビューでループして表示しようとしても、何も表示されません。誰か助けてもらえますか?

補足として、私はペーパークリップ+ jQueryファイルのアップロード(複数の写真のアップロード用)+ Amazon S3 + s3_direct_upload gem(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

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

これ以上コードをアップロードする必要がある場合はお知らせください。助けてください!

4

1 に答える 1

1

JQueryファイルのアップロードは、ファイルをAmazonS3にアップロードするだけです。必要なPaperclipレコードをデータベースに追加しません。そのためには、さらにいくつかの手順を実行する必要があります。Rails3のjquery-fileupload-rails-paperclip-exampleまたはjQueryFileUploadv4を参照してください。

于 2012-10-20T02:25:35.170 に答える