当创建/更新失败时,在Rails中重新填充输入类型=文件

时间:2014-01-31 11:13:04

标签: ruby-on-rails

在我的表单中,用户可以将图像作为表单的一部分上传,但如果该表单未通过验证,则所有这些图像都将丢失。

有没有办法用他们提交的图片重新填充这些字段?

1 个答案:

答案 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,您可以从它的来源学习如何实现类似的解决方案。