2012-01-14 110 views
4

我試圖跟隨Ryan Bates CarrierWave Rails演員製作http://railscasts.com/episodes/253-carrierwave-file-uploads,但有些事情自他做出以來似乎已經發生了變化。Rails:如何顯示上傳的圖像

瑞恩上繪畫類安裝載波

class Painting < ActiveRecord::Base 
    attr_accessible :gallery_id, :name, :image 
    mount_uploader :image, ImageUploader 
end 

,然後以顯示他這樣做

<%= image_tag painting.image_url%> 

圖像I假設CarrierWave提供painting方法。我在User類

class User < ActiveRecord::Base 

    attr_accessible :name, :email, :image 
    mount_uploader :image, ImageUploader 
end 

安裝載波當我試圖做到這一點

<%= image_tag user.image_url %> 

當我嘗試這樣做

<%= image_tag User.image_url %> 

我我得到了一個"undefined local variable or method for 'user'"錯誤信息

得到undefined method image_url'for#Class:0x0000010248e560>`

後者的錯誤消息讓我感到驚訝,因爲當我做rake routes這表明我這個網址

image GET /images/:id(.:format)  {:action=>"show", :controller=>"images"} 

這是文件路徑上傳圖像

/uploads/user/image/3/cadman.png 

,但我想不出瞭解如何使用Rails方法顯示它(即不僅是IMG SRC)

+0

你讓你的用戶變量一個新的用戶對象?我知道這似乎很明顯,但你永遠不知道。 – 2012-01-14 20:05:02

+0

Rails腳手架在新方法中執行它@user = User.new – Leahcim 2012-01-14 20:08:45

+0

當然,只是檢查您是否做了這一步驟。 – 2012-01-14 20:29:08

回答

7

使用實例變量@user而不是局部變量(即未定義):

<%= image_tag @user.image_url%>