当我上传图像然后用以下内容显示时,Paperclip工作正常:
<%= 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 :(得分:0)
问题在于检查@post.photo
会返回不等于false
的内容,无论它是什么。要进行调试,只需在控制器中打印@post.photo.inspect
或查看日志文件即可。
看到您的评论已经说明它是Paperclip::Attachment
个对象,检查的好候选人将是@post.photo.size > 0
或@post.photo.errors.empty?
,或者(可能最好)@phost.photo.file?
。