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 %>or <% if @post.photo != '' %>。但是,即使没有上传图像,这两者也总是返回 true。

仅当它存在时,如何通过回形针显示图像?

4

1 回答 1

0

问题是检查@post.photo返回的东西不等于false,不管它是什么。要调试它,只需@post.photo.inspect在控制器中打印 a 或查看日志文件。

看到您的评论已经说它是一个Paperclip::Attachment对象,检查的好候选者将是@post.photo.size > 0or @post.photo.errors.empty?, or (probably best) @phost.photo.file?

于 2012-10-27T17:15:08.247 回答