2012-02-01 38 views
0

我使用carrierwave上傳文件...但有一些問題。如何使用carrierwave?爲什麼我得到「被稱爲id爲零,這將錯誤地是4」

我的形式是這樣的:

<%= form_tag({:action => :submit}, :id=>"image_uploader", :multipart => true, :remote => true) do %> 
    <input style="file"...> 
<% end %> 

特別,有一個文件輸入。我想上傳用戶的頭像。

在avatar_upload.rb,我已經寫了這兩個命令:

process :resize_to_fit => [500, 500] 
version :thumb do 
    process :resize_to_fill => [52, 52] 
end 
在控制器

,我設置這些:

avatar = params[:avatar] 
    item.avatar = avatar 
    item.save 

它可以將文件保存到正確的位置,但不調整大小或生成拇指版本。

根據https://github.com/jnicklas/carrierwave

我想,也許我應該使用這些: 「商店」

uploader = AvatarUploader.new 
uploader.store!(avatar) 

我猜方法可能會運行調整大小的過程。

但是,它似乎需要<%= form_for @user%>,因爲它需要一個ID。

不過,我只想用的form_tag,因爲我創建一個新的用戶,而不是修改現有的...

我怎樣才能解決呢?

回答

1

在模型中只需添加

mount_uploader :avatar, AvatarUploader 

你不需要做任何事情來從控制器的圖像。

您的new行動中還需要@user = User.new

+0

但調整大小過程不起作用。我的意思是,圖像的大小不會更改爲500 * 500,並且沒有任何拇指版本文件.... – HanXu 2012-02-02 03:37:53

+0

我還在想如何清除緩存文件? – HanXu 2012-02-02 03:41:58

+0

你有rmagick安裝? – 2012-02-02 09:28:43

相關問題