问题描述
我正在尝试从编辑器插件中保存图像。 参数是:
<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
类配置为使用has_many_attached
而不是has_one_attached
。
如果仅上传一个图像,请更改编辑器或使用数组中的第一项。