在我的表单中,用户可以将图像作为表单的一部分上传,但如果该表单未通过验证,则所有这些图像都将丢失。
有没有办法用他们提交的图片重新填充这些字段?
答案 0 :(得分:0)
是的,有办法。例如,您可以使用CarrierWave。它内置了解决此问题的功能。 README的代码片段:
<%= form_for @user, :html => {:multipart => true} do |f| %>
<p>
<label>My Avatar</label>
<%= f.file_field :avatar %>
<%= f.hidden_field :avatar_cache %>
</p>
正如你所看到的,有一个隐藏的领域。基本上,CarrierWave会在avatar
字段内的请求之间保存副本avatar_cache
。在重新呈现的表单上,它从缓存中提取图像(如果有的话)。如果您不想使用CarrierWave,您可以从它的来源学习如何实现类似的解决方案。