【问题标题】:Attaching Tempfile with ActiveStorage error附加带有 ActiveStorage 错误的临时文件
【发布时间】:2018-02-11 18:07:59
【问题描述】:

我无法使用 服务对象 中的 Active Storage 将 JSON 临时文件附加到模型。这很容易复制:

型号:

class ServiceRequest < ApplicationRecord
  has_one_attached :data_file

流程:

temp_file = Tempfile.new([SecureRandom.uuid, '.json'])

@service_request.data_file.attach(temp_file)

错误:

ActiveRecord::RecordNotSaved (Failed to save the new associated data_file_attachment.)

我在ServiceRequest 模型上将data_file 定义为string。不知道问题出在哪里。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 rails-activestorage


    【解决方案1】:

    您不能单独将 Tempfile 对象传递给 #attach。您必须传递一个包含打开的:io:filename:content_type 的哈希:

    @service_request.data_file.attach(io: temp_file, filename: "data.json", content_type: "application/json")
    

    有关它接受的参数的更多信息,请参阅the docs for #attached

    【讨论】:

    • 谢谢。关于上传后如何获取其 URL 的任何想法?文档中的 .url 方法似乎不起作用。
    • 请提出一个新问题,详细说明您遇到的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 2019-02-18
    • 2019-08-04
    • 1970-01-01
    • 2019-06-22
    • 2021-03-14
    • 2018-06-17
    相关资源
    最近更新 更多