在 Rails 6 中使用 activestorage 时,如何在重新显示表单时保留文件?

2023-11-21

在 Rails 6 中,我有一个带有文件字段的表单,我使用 activestorage 来存储文件。如果提交表单后验证失败,则会重新显示表单并显示验证错误。重新显示表单时如何保留添加到文件字段的文件,以便用户不必再次将文件添加到表单?

Rails 5 已经有一个类似的问题:Active Storage:表单重新显示时保留/缓存上传文件的最佳实践,但是那里的解决方案仅适用于 Rails 5。


由于 Rails 6 不存储分配的文件,我发现的解决方法是在文件字段上启用直接上传。这将在提交表单之前通过 JavaScript 上传文件。

= f.file_field :doc, direct_upload: true

为此,您还需要将 activestorage.js 添加到您的包中,如主动存储指南.

更改后,可以使用问题中描述的方法Active Storage:表单重新显示时保留/缓存上传文件的最佳实践。这意味着将signed_id 添加到表单的隐藏字段中,如下所示:

= f.file_field :doc, direct_upload: true
= f.hidden_field :doc, value: f.object.doc.signed_id if f.object.doc.attached?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rails 6 中使用 activestorage 时,如何在重新显示表单时保留文件? 的相关文章

随机推荐

  • InvalidDeploymentException - 未设置应用程序标识

    我有一个引用 WPF 控件库的 WPF 应用程序 当我尝试启动 myWindow Show 控件库内的窗口时 出现以下异常 无效部署异常未设置应用程序标识 奇怪的是我是not正在做一个 ClickOnce 应用程序 那么为什么它会抱怨这个呢
  • 如何制作车辆沿路线从 A 到 B 移动的动画?

    下面是使用以下命令查找从 纽约世贸中心一号大楼 到 纽约市麦迪逊广场公园 的路线 旅行时间和旅行距离的示例osrmR 中的包 我从R 中的道路路由 此处的行程时间为 10 37 分钟 我想制作一个视频以进行可视化 问 如何创建车辆 由标记表
  • 为什么数字文字无法访问 Number 方法? [复制]

    这个问题在这里已经有答案了 如果您查看 ECMAScript 3 规范 您会发现原始值类型 Null 和 Undefined 没有伴随的 Null 和 Undefined 对象 gt gt Null ReferenceError Null
  • 如何使用 kubernetes NodePort 从外部访问服务?

    我使用以下配置设置了 NodePort 服务 wordpress service yaml apiVersion v1 kind Service metadata labels app wordpress name wordpress sp
  • 如何从 AlertDialog 获取 setMultiChoiceItems 项目?

    我正在使用 apidemos 中的以下代码 return new AlertDialog Builder AlertDialogSamples this setIcon R drawable ic popup reminder setTit
  • 属于多个关系。如何获得唯一的行

    我有下一个 member companies 数据库中的表 在模型中 Member 有一个关系 public function companies return this gt belongsToMany Company class mem
  • Python 中 GIL 的新实现是否处理了竞争条件问题?

    我读了一篇文章关于 Python 中的多线程 他们尝试使用同步来解决竞争条件问题 我运行了下面的示例代码来重现竞争条件问题 import threading global variable x x 0 def increment funct
  • 如何在 Windows 上编写 C++ FireFox 3 插件(不是扩展)?

    有人可以编写一个在 Windows 上为 FireFox 开发基于 C 的插件的分步指南吗 上的链接和示例http www mozilla org projects plugins 都是旧的且不准确 新 链接于 2004 年添加到该页面 这
  • 在 ASP.NET MVC 3 中上传大于 2GB 的文件

    我正在尝试在 ASP NET MVC 3 项目上上传大于 2GB 的视频文件 但 ASP NET 4 0 的最大文件上传大小似乎为 2GB 有没有办法在 ASP NET IIS 中突破这个限制 或者解决这个问题的另一种方法是什么 我还使用
  • python pdfminer 将pdf文件转换为一大块字符串,单词之间没有空格

    我使用的以下代码主要取自 DuckPuncher 对这篇文章的回答在Python中使用PDFMiner从PDF文件中提取文本 将 pdf 转换为文本文件 def convert pdf to txt path rsrcmgr PDFReso
  • 如何将我的 C# 程序作为计划任务运行

    我对 C 还很陌生 所以你必须忍受我 我开发了一个 Windows 窗体程序 它更新一些 SQL 记录 作为我们一个客户的日终处理过程 下一步是我需要将程序安装在服务器上 并在程序中模拟一个按钮点击 成为计划任务 我知道如何在服务器端设置任
  • Adb 安装/上传 apk 需要很长时间

    我在我的设备 Galaxy SPlus 和 Nexus 10 上上传应用程序从来没有遇到过任何问题 但由于未知的原因 现在在我的 Nexus 10 上上传 APK 需要很长时间 我尝试了 20 次 只完成了一次 有谁知道我如何调试 详细 A
  • 带有自定义 IEqualityComparer 的 Big O of Distinct() 方法

    任何人都知道 Big O 中使用的算法Distinct 方法 用自定义的IEqualityComparer 这里有一个同样的问题关于 对 LINQ 方法的运行时复杂性 Big O 有哪些保证 请参阅有关不同的答案中的此部分 不同 Group
  • mod_php是什么?

    在经历一个Zend教程 我遇到了以下声明 请注意 htaccess 中的 php flag 设置仅在您使用 mod php 时才有效 有人能解释一下这是什么意思吗 mod php表示 PHP 作为阿帕奇模块 基本上 加载时mod php作为
  • 使用 2d 数组索引 3d numpy 数组

    我想根据 numpy 3d 数组中的值创建一个 numpy 2d 数组 使用另一个 numpy 2d 数组来确定在轴 3 中使用哪个元素 import numpy as np arr 3d np arange 2 3 4 reshape 2
  • 在 IntelliJ 中调试时是否可以观看 BufferedImage 对象?

    在 IntelliJ 中调试时是否可以观看 BufferedImage 对象 我的意思是查看图像的视觉内容 而不是记忆身份 是否也可以直观地查看自定义对象 即编写一些自定义可视化工具 IntelliJ IDEA 2016 1 1 能够显示B
  • 管理 Firebase 聊天中的未读消息

    我正在构建实时聊天 与 Skype 非常相似 我使用 firebase 作为后端 在客户端使用 Angularfire 基本上 所有事情看起来都很清楚 但我坚持一件事 显示未读消息数 应用程序使用非常简单的 Firebase 设计 2 个或
  • 使用 pdfsharp 添加 acroform

    我如何将带有 pdfsharp lib 的 Acroforms 或任何输入字段 添加到 pdf 中 例如文本框 PdfSharp Pdf AcroForms PdfTextField 我找不到任何示例 只能读取 修改 我找到了 page g
  • 为什么Ajax.BeginForm提交后重定向到新的空页面?

    为什么 Ajax BeginForm 在提交后将我的页面重定向到新的空页面 我的控制器代码是 HttpPost public void ProductCommentAdd int productId string text Do somet
  • 在 Rails 6 中使用 activestorage 时,如何在重新显示表单时保留文件?

    在 Rails 6 中 我有一个带有文件字段的表单 我使用 activestorage 来存储文件 如果提交表单后验证失败 则会重新显示表单并显示验证错误 重新显示表单时如何保留添加到文件字段的文件 以便用户不必再次将文件添加到表单 Rai