我正在使用回形针 gem 将文件附加到模型。使用 Paperclip 上传文件时,仅在保存模型时才会保存文件。因此,如果模型无效,则不会保存上传的文件。有没有办法暂时保存上传的文件,这样如果模型无效,用户就不必上传相同的文件?
最佳答案
定义一个 before_save
检查对象是否有效的方法,
如果不将文件保存到磁盘,请给它一个唯一的名称(创建一些散列)
将其放入您发送回隐藏字段的表单中
删除表单中的上传字段
现在在 before_save
的 else 分支中方法检查是否有 hidden_field
previous_upload 或者你的名字
如果有加载图片并将其分配给回形针属性,它可以计算出其余部分
attr_accessor :previous_upload
def before_save
if valid?
if previous_upload
paperclip_file = #Load paperclip_file from /tmp
else
previous_upload = nil
end
else
previous_upload = "Some unique key for each upload like ip and time or such"
# Save paperclip_file with name previous_upload to /tmp
end
end
关于ruby-on-rails - 使用Rails Paperclip gem,如果模型无效,如何临时保存上传的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967835/