Ruby on rails 如何在rails4中使用回形针浏览多个文件
我有三个领域Ruby on rails 如何在rails4中使用回形针浏览多个文件,ruby-on-rails,ruby-on-rails-4,paperclip,Ruby On Rails,Ruby On Rails 4,Paperclip,我有三个领域 a) email b) phone number c) browse files (Here one link `add more file`) 当用户单击添加更多文件链接时,会出现一个浏览按钮,以此类推 我想在用户点击提交按钮时保存所有文件 我怎样才能在rails 4中使用回形针呢 模型 User.rb 发票.rb 我已将字段_用于视图中的发票 控制器 def new @user = User.new @user.invoices.build end def crea
a) email
b) phone number
c) browse files (Here one link `add more file`)
当用户单击添加更多文件链接时,会出现一个浏览按钮,以此类推
我想在用户点击提交按钮时保存所有文件
我怎样才能在rails 4中使用回形针呢
模型
User.rb
发票.rb
我已将字段_用于视图中的发票
控制器
def new
@user = User.new
@user.invoices.build
end
def create
User.create(user_params)
end
看起来您当前的设置对一个文件很有效,但是如果您想添加多个文件,您需要再次构建对象并加载一个新的字段以支持该设置。为此,我建议使用Ajax: 我不知道这是否有效,但这就是我解决问题的方法: 将您的字段放入部分 在表单上,使用:remote=>:true包含+按钮 控制器将处理AJAX请求并构建一个新对象 在成功的AJAX请求中,加载一个包含新字段的部分 查看提交是否包含所有文件 为部分用户创建字段 您的表单可能如下所示:
<%= f.fields_for :invoices do |field| %>
<%= field.file_field :image %>
<% end %>
<%= link_to "+", your_controller_action, :remote => :true %>
这将呈现一个新对象,然后可以使用返回的JS将其附加到表单:
#app/views/controller/new.js.erb
$("form").append("<%=j render :partial => 'images_fields', locals: {f: @user} %>")
看看它是否提交了所有文件
我的代码可能无法工作,因为它需要调试。然而,这是我将使用的过程。如果您尝试,我们可以在注释中进行调试
让我知道进展如何
<%= f.fields_for :invoices do |field| %>
<%= render :partial => 'images_fields', locals: {f: field} %>
<% end %>
<%= f.file_field :image %>
<%= link_to "+", your_controller_action, :remote => :true %>
#app/controllers/your_controller.rb
def new
@user = User.new
@user.invoices.build
respond_to do |format|
format.js { @user.invoices.build }
format.html
end
end
#app/views/controller/new.js.erb
$("form").append("<%=j render :partial => 'images_fields', locals: {f: @user} %>")