[英]Carrierwave can't save the image, using an engine
我正在學習使用Carrierwave的第一步,顯然是上傳一張圖片,看看它是否有效地插入到數據庫中。 一個可能很重要的細節是,此代碼是用Rails引擎編寫的,並命名了( Wanker
)
我按照gem的指示生成了一個上傳器,一切都很好( Wanker::PicturesUploader
)
我用一個picture
字符串字段(MySQL)制作了一個模型CompanyDetailImage
,並添加了這一行
mount_uploader :picture, Wanker::PicturesUploader
然后我做了一個視圖和一個表格
<%= f.fields_for [:wanker, @company, @company_detail, @company_detail_images] %>
<%= i.label :picture %>
<%= i.file_field :picture %>
<% end %>
控制器中的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"]
參數正在返回一個數組,而不是對象本身(這是該數組中的第一項)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.