重新安装多个文件并附加

时间:2015-07-24 15:37:38

标签: ruby-on-rails refile

当我执行表单验证时,我遇到了有关Refile及其多个文件选项的问题。

当我发送带附件的表单时(让我们说"文档A"),表单在验证中没有成功(让我们说因为电子邮件是必需),refile有以下行为:

  • 如果没有附加其他文件,我们会重新提交表单(这次是有效的表格)," docs A"持久化并从缓存移动到商店文件夹(全部通过重新完成)。这一切都很好。
  • 如果表单中包含其他文件("文档B"),并且后者已提交,则只有" docs B"将被考虑(无论表格是否有效,或无效,尽管:附加值 - 检查下面的模型)。如果表格有效,只有" docs B"将坚持下去。如果表单无效,一旦我们将其设置为有效并重新提交,它将继续存在" doc B" (除非我们附加新文件)。

" docs A"和" docs B"也可以是单个文件。它会发生同样的行为。

我有以下型号

class User < ActiveRecord::Base
  has_many :documents, dependent: :destroy
  accepts_attachments_for :documents, append: true, attachment: :file
end

class Document < ActiveRecord::Base
  belongs_to :user
  attachment :file, type: :document
end

以表格形式:

<%= f.attachment_field :documents_files, multiple: true, direct: true, presigned: true %>

我使用refile 0.5.5。

我已经尝试过隐藏输入

<% @user.documents.each do |doc| %>
  <%= f.hidden_field "documents_files", multiple: true, value: {id: doc.file_id, filename: doc.file_filename, size: doc.file_size} %>
<%# end %>

但他们得到&#34;覆盖&#34;如果包含新附件。

我想知道refile的多重和附加行为是否真的有效,或者我的实现是否不正确。

预期的行为是新附件应附加到现有附件(即&#34;文档A&#34; +&#34;文档B&#34;)。

我很感激任何帮助!

0 个答案:

没有答案