Ruby on rails Carrierwave在重新显示后保留上载

Ruby on rails Carrierwave在重新显示后保留上载,ruby-on-rails,carrierwave,cocoon-gem,Ruby On Rails,Carrierwave,Cocoon Gem,我需要让rails记住用户在表单验证失败并重新显示表单后选择上载的文件。我想我已经阅读了网络上关于这个话题的每一篇文章,但都没有成功 我找到的最好、最完整的解决方案是: 我已经从git克隆了这个项目,在本地运行,是的,它确实可以工作,但是当验证失败时,附件会被记住,但是文件上传框仍然显示“没有选择文件”。这令人困惑 是否有人设法让rails+carrierwave在验证失败时保持文件上载,而不会显示令人困惑的消息 请参阅这里的帖子和截图。 更新 我已经设法在某种程度上解决了这个问题,我希望

我需要让rails记住用户在表单验证失败并重新显示表单后选择上载的文件。我想我已经阅读了网络上关于这个话题的每一篇文章,但都没有成功

我找到的最好、最完整的解决方案是:

我已经从git克隆了这个项目,在本地运行,是的,它确实可以工作,但是当验证失败时,附件会被记住,但是文件上传框仍然显示“没有选择文件”。这令人困惑

是否有人设法让rails+carrierwave在验证失败时保持文件上载,而不会显示令人困惑的消息

请参阅这里的帖子和截图。

更新 我已经设法在某种程度上解决了这个问题,我希望有人能够阐明正在发生的事情

形式

附件(表格)

附件\u字段
false,接受:'image/jpeg,image/gif,image/png'>
f、 object.attachment_缓存%>
这确实有效,并在验证错误时在表单重新显示之间保留所选文件。如果我将“attachments\u form”更改为将表单调用包装在div中,它将停止工作

附件\u表格-停止工作


有一个类似的问题,你能解决吗?我也是@danielpiestrak,你们两个都能解决这个问题吗?也有同样的问题有一个类似的问题,你能解决吗?我也是@danielpiestrak,你们两个都能解决这个问题吗?也有同样的问题吗
<%= form_for(article, html: { id: "discussion-form" }, remote: true ) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_area :content, rows: 5, placeholder: "What do you want to discuss?", minlength: 10, maxlength: 1000 %>
  </div>
  <%= render partial: "attachments_form", locals: {f: f} %>
  <%= f.submit "Start discussion", class: "btn btn-success" %>
<% end %>
<%= f.fields_for :attachments do |builder| %>
  <% render 'attachment_fields', f: builder %>
<% end %>
<%= link_to_add_association "Add an attachment", f, :attachments %>
<%= f.file_field :attachment, :multiple => false, accept: 'image/jpeg,image/gif,image/png' %>
<%= f.hidden_field :attachment_cache, :value => f.object.attachment_cache %>
<%= f.hidden_field :id %>
<%= f.hidden_field :_destroy %>
<%= link_to_remove_association "remove", f %>
<div id="tasks">
  <%= f.fields_for :attachments do |builder| %>
    <% render 'attachment_fields', f: builder %>
  <% end %>
  <%= link_to_add_association "Add an attachment", f, :attachments %>
</div>