Прямые загрузки на S3 с использованием Carrierwave

Я недавно преобразовал приведенное ниже из использования Paperclip в загрузку Carrierwave в Amazon S3, чтобы я мог использовать гем carrierwave_direct, а затем Sidekiq или другой камень фоновой обработки.

class Release < ActiveRecord::Base
  has_many :releases_tracks, :dependent => :destroy
  has_many :tracks, :through => :releases_tracks, :order => "releases_tracks.position DESC"
  accepts_nested_attributes_for :tracks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => :true
  accepts_nested_attributes_for :releases_tracks  
end

class Track < ActiveRecord::Base
  mount_uploader :track, TrackUploader
  has_many :releases_tracks, :dependent => :destroy
  has_many :releases, :through => :releases_tracks 
end

/views/releases/track_upload.html.erb

<%= form_for(@release, :html => { :multipart => true }) do |f| %>
<h3>Upload Tracks for <%= @release.title %></h3>
    <% index = 0 %>
    <%= f.fields_for :tracks do |builder| %>
    <%= @release.tracks[index].name %>
        <%= f.file_field :track, :class => "file styled", :title => 'Select Track'%>
    <% index += 1 %>
    <% end %>

    <%= f.submit "Upload Tracks", :class => "submit" %>
<% end %>

Загрузка Carrierwave работает, но я не могу понять, как заставить работать прямую часть. Частично потому, что я не могу понять, как включить предложенный код формы:

<%= direct_upload_form_for @uploader do |f| %>
  <%= f.file_field :track %>
  <%= f.submit %>
<% end %

Или где в моем треке ИЛИ выпустить контроллер, я помещаю предложенное:

@uploader = User.new.track
@uploader.success_action_redirect = new_user_url

Readmehttps://github.com/dwilkie/carrierwave_direct и Railscasthttp://railscasts.com/episodes/383-uploading-to-amazon-s3 оба указывают сначала на загрузку файла, а затем на создание записи в базе данных. В моем приложении записи БД уже существуют. Railscast действительно говорит, что это возможно, но не проходит через это. Так что это первая проблема.

Во-вторых, мне нужно загружать более одного файла одновременно. Приведенный выше код делает это, но очень медленно, и, конечно, делает мое приложение довольно бесполезным.

Кто-нибудь может помочь? Большое спасибо заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос