簡體   English   中英

Ruby on Rails:使用carrierwave上傳多個文件

[英]Ruby on Rails: multiple file upload with carrierwave

我已經在我的ruby on rails app上為我的用戶實現了文件上傳。 每個用戶都可以上傳一個xml文件,但現在我試圖用多個文件來做,但是我遇到了一些問題。 任何人都可以舉例說明如何升級我的代碼?

我已經可以上傳多個文件,我可以在數據庫中看到它們,但如果我上傳更多(例如1),他會覆蓋以前的文件。 我如何列出所有用戶文件?

編輯:

我需要每次只上傳一個文件(沒有倍數:true)。 我的目標是在用戶上傳文件后添加更多文件

文檔摘錄。

添加一個可以存儲數組的列。 例如,這可以是數組列或JSON列。 您的選擇取決於您的數據庫支持的內容。 例如,創建一個這樣的遷移:

rails g migration add_avatars_to_users avatars:json
rake db:migrate

打開模型文件並安裝上傳器:

class User < ActiveRecord::Base
  mount_uploaders :avatars, AvatarUploader
end

確保將文件輸入字段設置為多個文件字段。 例如在Rails中你會想要做這樣的事情:

<%= form.file_field :avatars, multiple: true %>

此外,請確保您的上傳控制器允許多文件上載屬性,指向散列中的空數組。 例如:

params.require(:user).permit(:email, :first_name, :last_name, {avatars: []})

現在您可以在上傳對話框中選擇多個文件(例如SHIFT + SELECT),並在保存記錄時自動存儲它們。

u = User.new(params[:user])
u.save!
u.avatars[0].url # => '/url/to/file.png'
u.avatars[0].current_path # => 'path/to/file.png'
u.avatars[0].identifier # => 'file.png'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM