使用 ActiveStorage "Could not find or build blob: expected attachable" 附加文件时出错 ActionDispatch::Http::UploadedFile

Error attaching file with ActiveStorage "Could not find or build blob: expected attachable" got ActionDispatch::Http::UploadedFile

我正在尝试保存来自编辑器插件的图像。 参数是:

<ActionController::Parameters {"file"=>[#<ActionDispatch::Http::UploadedFile:0x00007fa78416dfe0 @tempfile=#<Tempfile:/var/folders/gt/k_vyp2g13zl7l89pzl9y44vc0000gp/T/RackMultipart20200918-91605-ob1sq1.jpg>, @original_filename="folk.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file[]\"; filename=\"folk.jpg\"\r\nContent-Type: image/jpeg\r\n">], "controller"=>"admin/medias", "action"=>"create"} permitted: false>

所以在我的行动中,我用附件建立了我的记录

@media = Media.new
@media.file = params[:file]
# @media.file.attach params[:file]  # same error
@media.save!

我收到错误:

ArgumentError Exception: Could not find or build blob: expected attachable, got [#<ActionDispatch::Http::UploadedFile ..

如何将提交的文件附加到@media 记录?

提交的params[:file]是一个文件数组。

如果编辑器确实可以上传多张图片,请确保您的 Media class 配置为使用 has_many_attached 而不是 has_one_attached

如果只上传一张图片,请更改编辑器或使用数组中的第一项。