Ruby on rails RubyonRails:使用carrierwave进行多文件上传

Ruby on rails RubyonRails:使用carrierwave进行多文件上传,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我已经在RubyonRails应用程序中为我的用户实现了一个文件上传。每个用户都可以上传一个xml文件,但现在我试图用多个文件来上传,但我遇到了一些问题。有人能给我举个例子,说明如何升级我的代码吗 我已经可以上传多个文件,我可以在数据库中看到它们,但如果我上传更多(例如1),他会覆盖以前的文件。如何列出所有用户文件 编辑: 我每次只需要上传一个文件(没有multiple:true)我的目标是在用户上传一个摘录后添加更多文件 添加可以存储数组的列。例如,可以是数组列或JSON列。您的选择取决于您的

我已经在RubyonRails应用程序中为我的用户实现了一个文件上传。每个用户都可以上传一个xml文件,但现在我试图用多个文件来上传,但我遇到了一些问题。有人能给我举个例子,说明如何升级我的代码吗

我已经可以上传多个文件,我可以在数据库中看到它们,但如果我上传更多(例如1),他会覆盖以前的文件。如何列出所有用户文件

编辑:

我每次只需要上传一个文件(没有multiple:true)我的目标是在用户上传一个摘录后添加更多文件

添加可以存储数组的列。例如,可以是数组列或JSON列。您的选择取决于您的数据库支持什么。例如,创建如下迁移:

打开模型文件并装载上载程序:

现在,您可以在上载对话框中选择多个文件(例如SHIFT+select),保存记录时将自动存储这些文件

摘录

添加可以存储数组的列。例如,可以是数组列或JSON列。您的选择取决于您的数据库支持什么。例如,创建如下迁移:

打开模型文件并装载上载程序:

现在,您可以在上载对话框中选择多个文件(例如SHIFT+select),保存记录时将自动存储这些文件


请参阅文档请参阅文档这只适用于新版本的mysql。对于旧版本,我们需要通过Association来完成,但如果我需要上传更多,它将覆盖旧版本。这只适用于新版本的mysql。对于较旧的版本,我们需要通过Association完成,但如果我需要上传更多,它将覆盖旧版本
rails g migration add_avatars_to_users avatars:json
rake db:migrate
class User < ActiveRecord::Base
  mount_uploaders :avatars, AvatarUploader
end
<%= form.file_field :avatars, multiple: true %>
params.require(:user).permit(:email, :first_name, :last_name, {avatars: []})
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'