Dan*_*Rio 2 ruby-on-rails ruby-on-rails-5 rails-activestorage
随着 Rails 5.2 的发布,经常使用的Paperclip gem现已弃用,建议使用Rails 附带的Active Storage。我正在开始一个新项目并轻松设置 Active Storage,但是在尝试向文件上传添加名称或描述时出现了问题。
使用 Paperclip,我会在模型中添加一个名为 file_upload_name 之类的列,这样除了文件名“something.pdf”之外,我还可以在上传表单上添加名称或描述,例如“我的重要文档”。
对于我正在做的项目,这是上传过程的重要组成部分,理想情况下需要在上传时完成。由于 Active Record 不会以这种方式存储到模型中,因此它不像添加列和向表单添加字段那么简单。这似乎应该相对简单,但我无法弄清楚或找到有关如何最好地做到这一点的任何信息。非常感谢任何帮助。
这是我要实现的目标的示例:
使用 Active Storage,最终结果是一个多文件上传按钮,没有命名等。
小智 5
您应该创建一个新模型来包装每个附加文件。然后,该模型将在其上定义 ActiveStorage 附件,以及您需要捕获的任何其他属性。前任:
class Attachment < ApplicationRecord
has_one_attached :file
end
Run Code Online (Sandbox Code Playgroud)
然后 Rails 将file每个附件视为一个属性。您可以在附件模型上定义其他属性(例如upload_name 等)。根据您的屏幕截图,看起来 Quotation 可能有许多附加文件,因此您可以执行以下操作:
class Quotation < ApplicationRecord
has_many :attachments
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |