5

我正在使用部分表单来创建和编辑包含上传器(“文件”)的模型对象:

= 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

在编辑表单中,而不是获取与已上传文件关联的文件名,我得到“未选择文件”。有没有办法让小部件识别上传者不是零并使用上传者的文件名?

4

1 回答 1

3

出于安全原因,您不能在文件输入字段中手动设置值。文件名反映了浏览器选择的文件,但此时文件已经上传,为什么@document.file?如果你看就会显示真实。file_cache 仅用于存储和重新发送已发送的属性,以免与覆盖文件字段的输入值混淆。例如,如果您将隐藏字段更改为输入字段,您将看到相同的“无文件”消息。

我意识到这不是你想要的,但也许更好的处理方法是重新标记输入以说出“替换文件”之类的内容,然后通过 @document.file if @document.file?字段上方渲染出文件中殿。

于 2013-02-14T22:51:45.777 回答