Paperclip在未上传图像时出错

时间:2012-10-27 16:35:10

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 paperclip paperclip-validation

当我上传图像然后用以下内容显示时,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 != '' %>一起存在。但是,即使没有上传图像,这两者总是会返回。

如果图像存在,如何通过回形针显示图像?

1 个答案:

答案 0 :(得分:0)

问题在于检查@post.photo会返回不等于false的内容,无论它是什么。要进行调试,只需在控制器中打印@post.photo.inspect或查看日志文件即可。

看到您的评论已经说明它是Paperclip::Attachment个对象,检查的好候选人将是@post.photo.size > 0@post.photo.errors.empty?,或者(可能最好)@phost.photo.file?