gpt4 book ai didi

mysql - Carrierwave无法保存图像,使用引擎

转载 作者:行者123 更新时间:2023-11-29 12:24:41 24 4
gpt4 key购买 nike

我正在学习使用 Carrierwave,第一步显然是上传图片并查看它是否有效插入到数据库中。一个可能很重要的细节是,此代码是在 Rails 引擎中编写的,并且具有命名空间 (Wanker)

我按照 gem 的说明生成了一个 uploader ,一切顺利 (Wanker::PicturesUploader)

我制作了一个带有 picture 字符串字段 (MySQL) 的模型 CompanyDetailImage 并添加了这一行

mount_uploader :picture, Wanker::PicturesUploader

然后我制作了一个 View 和一个表单

<%= f.fields_for [:wanker, @company, @company_detail, @company_detail_images] %>

<%= i.label :picture %>
<%= i.file_field :picture %>

<% end %>

Controller 中的 params[:company][:company_detail_image]["picture"] 将在其中包含此内容

[#<ActionDispatch::Http::UploadedFile:0x007fe613b81f40
@content_type="image/png",
@headers=
"Content-Disposition: form-data; name=\"company[company_detail_image][picture][]\"; filename=\"Screen Shot 2015-02-04 at 8.18.58 PM.png\"\r\nContent-Type: image/png\r\n",
@original_filename="Screen Shot 2015-02-04 at 8.18.58 PM.png",
@tempfile=# <File:/var/folders/2w/lw3glw5d58g25qvv4cx6yk0m0000gn/T/RackMultipart20150213-22947-np2et6>>]

这对我来说似乎不错。但是当我尝试这个时

@company_detail_image = Wanker::CompanyDetailImage.new
@company_detail_image.picture = params[:company][:company_detail_image]["picture"]
@company_detail_image.save!

它返回这个

ActiveRecord::RecordInvalid: Validation failed: Picture You are not allowed to upload nil files, allowed types: jpg, jpeg, gif, png

有人知道为什么它没有捕捉到图片吗?谢谢你们;)

最佳答案

试试这个:

@company_detail_image.picture = params[:company][:company_detail_image]["picture"].first

这是因为您的 ["picture"] 参数返回一个数组而不是对象本身(这是该数组中的第一项)。

关于mysql - Carrierwave无法保存图像,使用引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com