typeerror (nil을 문자열로 변환 할 수 없음) attachment_fu로
-
18-09-2019 - |
문제
attachment_fu를 사용하여 Rails 앱에서 파일 첨부 파일을 처리하고 있습니다. public_filename
방법 파일의 URL을 검색하는 방법. 커버라는 모델에서 사용하고 있으므로 업로드 된 커버 이미지의 URL을 호출하려면 다음과 같습니다.
<%= image_tag(@cover.public_filename) %>
이것은 사용자가 적절한 첨부 파일을 가지고있을 때 잘 작동하지만 내 응용 프로그램에서는 사용자가 첨부 파일을 업로드 할 필요가 없습니다.
따라서 전화 @cover.public_filename
유형을 던질 것입니다 : 파일이 nil이라는 명백한 이유 때문에 nil을 문자열로 변환 할 수 없습니다.
그러나 나는 물체가 nil이기 때문에이 문제에 효과적으로 논리를 추가하는 데 어려움을 겪고 있으며, unless @cover.public_filename.nil?
또는 if @cover.public_filename == nil
열매가없고 동일한 유형 오류를 유발합니다.
내가 무엇을 놓치고 있습니까?
다른 팁
<%= image_tag(@cover.public_filename) unless @cover.nil? %>
죄송합니다. 댓글을 달 수 없습니다. 여기에 있습니다 업데이트 대신에:
@cover.public_filename?
여기서 작동하지 않습니다 @cover
a nil
물체와 그와 같이 아니요 public_filename?
방법.
nil.respond_to?('public_filename?') #=> false
업데이트 :
만들기 :
<%= image_tag(@cover.public_filename) if @cover && @cover.public_filename? %>
제휴하지 않습니다 StackOverflow