3

回形針正常工作:回形針給人當圖像沒有上傳錯誤,當我上傳的圖像,然後用它顯示

<%= image_tag @post.photo.url(:medium) %> 

問題是,如果圖像不上傳,我得到這個錯誤:

NoMethodError in Posts#show 

Showing /Users/me/RubymineProjects/level_60/app/views/posts/show.html.erb where line #16 raised: 

undefined method `[]' for nil:NilClass 

我嘗試檢查圖像是否存在與<% if @post.photo %><% if @post.photo != '' %>。但是,即使沒有上傳圖片,這兩種情況都會保持正確。

如何僅通過回形針顯示圖像?

+0

嘗試'<%if @ post.photo.any? %>' – MrYoshiji

+0

這是我在嘗試時遇到的錯誤:'未定義的方法'任何?爲#' – user1779563

回答

0

問題是檢查@post.photo返回的東西不等於false,不管它是什麼。要進行調試,只需在控制器或查看日誌文件中打印@post.photo.inspect即可。

鑑於您的評論已經說,這是一個Paperclip::Attachment對象,良好的候選人檢查將@post.photo.size > 0@post.photo.errors.empty?,或(可能是最好的)@phost.photo.file?