문제

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 열매가없고 동일한 유형 오류를 유발합니다.

내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

autchment_fu와 함께 작업하지 않았지만 공개 _filename은 첨부 파일이 첨부되지 않은 경우 NIL의 일부 필드에 의존하는 메소드입니다. 여기 나는 Attachment_FU에 항상 첨부 파일이 있어야한다는 것을 읽었습니다. 이것이 아마도 그것이 당신에게 효과가 없었던 이유 일 것입니다. 저자는 또한 사용 제안을 제안합니다 클립 플러그인. 그것을보세요!

다른 팁

<%= 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? %>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top