2012-02-29 45 views
0

在我的應用程序中,我可以選擇讓用戶通過回形針上傳個人資料圖片的圖像。如果用戶照片不存在,然後顯示通用圖像

希望我想在index.html.erb頁面中做的是顯示所有用戶的顯示圖片,如果他們沒有上傳一個,那麼它應該顯示一個默認圖片。

現在我已經嘗試編碼它,但目前有圖片的用戶有顯示,但沒有得到什麼。

我在我的用戶模型下面的代碼:

def user_photo 
    (photo.url.present?) ? photo.url : '/images/guest.png' 
end 

,並在我的index.html.erb

<% for user in @users %> 
............. 
    <%= image_tag user.user_photo, :height => 50, :width => 50 %> 
.............. 
<% end %> 

什麼我的問題可能是任何想法下面的代碼?

感謝

+0

什麼是生成的HTML就像客人的情況? 'img src'說什麼?如果您將瀏覽器指向該URL,會發生什麼情況?您是否嘗試過手動訪問'guest.png'? – Amadan 2012-02-29 15:29:49

回答

0

有這樣的事情在你的用戶模型:

has_attached_file :photo, 
    :default_url => '/images/guest.jpeg', 
    :styles => { 
     :large => "300x300>", 
     :thumb => "100x100>", 
     :tiny => "32x32>" 
    } 

的:如果有一個模型沒有附加文件DEFAULT_URL選項使用。如果用戶沒有任何上傳的照片,則可以使用此選項設置要顯示的默認照片。

在視圖:

<%= image_tag @user.photo.url(:thumb) %> 

閱讀Paperclip usage guide

0

由於這是觀點的邏輯,我把它放在一個幫手,而不是在模型中。因此,在相關幫手中:

def user_photo(user) 
    user.photo.url.present? ? image_tag user.user_photo : image_tag 'guest.png' 
end 

然後從視圖中調用該助手。當然,您可以將其他參數添加到image_tag的尺寸等。通過這種方式,您可以始終如一地使用image_tag助手。

相關問題