我正在使用一个表格部分来创建和编辑包含上传者(“文件”)的模型对象:
= simple_form_for(@document) do |f|
= f.error_notification
.form-inputs
= f.input :event_id
= f.input :name
= f.input :file
= f.hidden_field :file_cache
.form-actions
= f.button :submit
在编辑表单中,不是获取与已上传文件关联的文件名,而是“未选择文件”。有没有办法让小部件识别上传者不是nil并使用上传者的文件名?
答案 0 :(得分:3)
出于安全原因,您无法在文件输入字段中手动设置值。文件名反映了浏览器选择的文件,但文件已经在那时上传了,为什么@ document.file?如果你看,它会表现出来。 file_cache仅用于存储和重新发送已发送的属性,不要与覆盖文件字段的输入值混淆。例如,如果您将隐藏字段更改为输入字段,您将看到相同的“无文件”消息。
我意识到这不是你想要的,但也许更好的方式来处理这个是将输入重新标记为“替换文件”,然后通过
@document.file if @document.file?
高于该领域。