编辑形式的载波

标签 carrierwave

我正在使用部分表单来创建和编辑包含上传者("file")的模型对象:

= 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

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

最佳答案

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

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

关于编辑形式的载波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466179/

相关文章:

ruby - Rails + Carrierwave + RMagick : Crop only if image is large

ruby-on-rails - Rails 4 + Carrierwave + jQuery 文件上传 + 嵌套表单多文件问题

ruby-on-rails - 载波不渲染,路径存在但图像不显示

ruby-on-rails - Carrierwave 在控制台上给出错误

ruby-on-rails - CarrierWave:调整默认图像大小

amazon-s3 - S3 存储因雾 0.7.2 + 载波主分支而失败

asset-pipeline - 如何在 rails4 中为 default_url 使用摘要感知 Assets ?

ruby-on-rails - Carrierwave 多张图片上传

ruby-on-rails - 在 Rails 中,如何使用 jquery-file-upload 和 CarrierWave 处理多个多态文件上传?

ruby-on-rails - 我想停止carrierwave删除文件