Я использую jquery-fileupload-rails для загрузки нескольких файлов.
Я хочу получить возможность задавать имя документа и добавлять к нему несколько вложений.
Но прямо сейчас, когда я выбираю 3 вложения, он создает 3 documents
каждый с одним вложением.
Думаю, мне нужно как-то изменить форму для добавления вложений. Я добавил несколько опций и галообразное имя.
Я хочу использовать этот плагин, потому что позже мне захочется добавить функцию перетаскивания.
С
= simple_form_for [:member, @document], html: { multipart: true } do |f|
= f.input :name
= f.simple_fields_for :attachments, Attachment.new do |a|
= a.file_field :attachment, multiple: true, name: "document[attachments_attributes][][attachment]"
= f.submit
Генерация:
<input id="document_attachments_attributes_0_attachment" multiple="multiple" name="document[attachments_attributes][][attachment]" type="file">
JS
jQuery ->
$('#new_document').fileupload()
Модели
class Document < ActiveRecord::Base
has_many :attachments
accepts_nested_attributes_for :attachments
end
class Attachment < ActiveRecord::Base
belongs_to :document
has_attached_file :attachment
end
контроллер
class Member::DocumentsController < ApplicationController
def new
@document = Document.new
end
def create
@document = Document.new params[:document]
if @document.save
redirect_to member_documents_path, notice: "Created"
else
redirect_to member_documents_path, alert: "Not created"
end
end
private
def document_params
params.require(:document).permit(:name, attachments_attributes: [:attachment])
end
end