3

종이 클립이 잘 작동 이미지가 업로드되지 않은 오류를 제공종이 클립 내가 이미지를 업로드하고 그것을 표시 할 때

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 != '' %>으로 이미지가 있는지 확인하려고합니다. 그러나 이미지가 업로드되지 않은 경우에도 항상 둘 다 true를 반환합니다.

어떻게 존재하는 경우에만 클립을 통해 이미지를 표시합니까?

+0

시도 '<% @ post.photo.any 경우? %>' – MrYoshiji

+0

나는 것을하려고 할 때 내가 얻을 오류입니다 : '정의되지 않은 메서드'모든' # 에 대한 – user1779563

답변

0

문제는 그것이 무엇이든 false 동일하지 않습니다 @post.photo 반환 뭔가를 확인. 이 디버깅하려면 컨트롤러에 @post.photo.inspect를 인쇄하거나 로그 파일에 볼 수 있습니다.

귀하의 의견은 이미이 Paperclip::Attachment 객체 말한다 것을보고, 검사를위한 좋은 후보 @post.photo.size > 0 또는 @post.photo.errors.empty?, 또는 (아마도 최고의) @phost.photo.file? 될 것이다.