簡體   English   中英

載波無法使用引擎保存圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM