我可以使用機械化的形式像這樣成功上傳單個文件:形式上傳多個文件與紅寶石機械化
def add_attachment(form, attachments)
attachments.each_with_index do |attachment, i|
form.file_uploads.first.file_name = attachment[:path]
end
end
其中form
是機械化的形式。但是如果附件有多個元素,最後一個會覆蓋之前的元素。這顯然是因爲我使用了總是返回file_uploads數組的相同元素的first
訪問器。
爲了解決這個問題,我嘗試了這個,這會導致錯誤,因爲這個數組中只有一個元素。
def add_attachment(form, attachments)
attachments.each_with_index do |attachment, i|
form.file_uploads[i].file_name = attachment[:path]
end
end
如果我試圖創建一個新的file_upload對象,它也不起作用:
def add_attachment(form, attachments)
attachments.each_with_index do |attachment, i|
form.file_uploads[i] ||= Mechanize::Form::FileUpload.new(form, attachment[:path])
form.file_uploads[i].file_name = attachment[:path]
end
end
任何想法,我怎麼能使用機械化上傳多個文件?