Ruby on rails 活动存储:表单重新显示时保留/缓存上载文件的最佳做法

Ruby on rails 活动存储:表单重新显示时保留/缓存上载文件的最佳做法,ruby-on-rails,rails-activestorage,ruby-on-rails-5.2,Ruby On Rails,Rails Activestorage,Ruby On Rails 5.2,在使用活动存储上载文件时,当文件上载完毕并重新显示表单时,例如,当该表单的验证因某种原因失败时,文件将消失 有没有办法在表单重新显示之间缓存或保留它?为此,我正在为Active Storage寻找类似的解决方案。这里有一个解决方案,可以使Active Storage文件在表单重新显示中持久化: f、 隐藏\u字段:图像,值:f.object.image.signed\u id如果f.object.image.attached? f、 文件\u字段:图像 对于那些寻找的人,有许多附加的解决方案

在使用活动存储上载文件时,当文件上载完毕并重新显示表单时,例如,当该表单的验证因某种原因失败时,文件将消失


有没有办法在表单重新显示之间缓存或保留它?为此,我正在为Active Storage寻找类似的解决方案。

这里有一个解决方案,可以使Active Storage文件在表单重新显示中持久化:

f、 隐藏\u字段:图像,值:f.object.image.signed\u id如果f.object.image.attached?
f、 文件\u字段:图像

对于那些寻找
的人,有许多附加的
解决方案



您对此做了些什么吗?不幸的是,没有。仍然坚持使用Silence,它工作得很好,并且还有一些其他很好的功能,但仍然缺少Active Storage,例如将文件上载为数据URI。@cseelus下面发布的解决方案dmitry有什么问题吗?我知道它会在Rails 6中停止工作,但它可以工作。明年6.0下降时,它可以很容易地去除。德米特里我现在想给你买很多啤酒,你救了我的理智!谢谢对于任何想使用此功能的人,请注意,不幸的是,它与Rails master中的新更改不兼容,Rails master将新上载的文件存储在save而不是assignment中幸运的是,破坏性更改将成为Rails 6的一部分,这只是一个遥远的未来。Rails 5.2.1现在具有签名的\u id值:)如果任何人在Rails 6中有解决此问题的方法,请回答以下问题:在Rails API文档中,您在哪里看到隐藏的\u字段帮助器接受“multiple:true”选项?另外,我不知道HTML规范允许在InputsOry上使用这样的属性,这可能是一个输入错误(你是对的,倍数不是一个选项+倍数不是必需的,因为我正在使用#每张照片循环)让我来修正它。(
multilple:true
已删除)
<% if @product.photos.attached? %>
  <% @product.photos.each do |ph| %>
    <%= f.hidden_field :photos, value: ph.signed_id %>
  <% end %>
<% end %>