2010-05-25 4 views
4

저는 Paperclip을 사용하여 파일을 관리하는 모델을 가지고 있습니다.파일을 지우는 클립을 얻는 방법

모델을 삭제 한 후에도 분명히 파일을 삭제하고 싶지만, Paperclip을 사용하여 파일을 삭제하는 방법을 찾을 수없는 것 같습니다.

나는 before_destroy def에서 self.sourcefile = nil if !sourcefile.dirty?을 시도했지만 아무런 영향이 없었습니다.

(제가 테스트 할 때이 로컬 파일을 삭제 가질 수 있도록하려면, 다음 S3에 나는 그것을 사용하는 경우 - 그래서 나는 순수한 클립 솔루션이 필요)

어떤 아이디어?

답변

10

파일을 지울 수 없을 때 Paperclip은 매우 시끄 럽습니다. 당신이 너무 삭제 된 개체, 관련 파일을 (있는 경우), 삭제 특별한 구성없이

, 이것은 (적어도 개발 모드에서) 로그에 기록됩니다 :

[paperclip] Deleting attachments. 
[paperclip] deleting /clipper/public/system/avatars/3/original/whatever.JPG 

종이 클립의 경우 파일을 삭제할 수 없으면 단순히 예외가 발생합니다.

이 모든 것이 최신 Paperclip (5 월 25 일 github에서 복제 됨)을 사용하여 테스트되었습니다. 이전 버전을 사용하고 있다면 업데이트하고 로그를 보면서 테스트를 실행하십시오.

+0

그래, 로그에서 볼 수 있듯이 파일 시스템에 반영된 적이 없다는 것을 알 수 있으므로 파일 삭제와 관계없이 클립이 제대로 작동하지 않았기 때문에 곧바로 AWS 액세스를 사용하기로했다. –

0

내가 틀릴 수도 있지만 has_attached_filebefore_destroy 콜백이 추가되어 자동으로 처리해야한다고 생각합니다. Source.

편집 : 작동하지 않는 경우 destroy_attached_files 번으로 전화하여 나에게 이상한 것처럼 보일 수도 있습니다. Source.

+0

나는 그것을 사용하고 있지만 내 파일은 여전히 ​​남아 있습니다. : –

+0

매우 기괴합니다. 내가 생각할 수있는 유일한 다른 문제는 다음과 같습니다./http://github.com/thoughtbot/paperclip/issues – theIV

+0

그래, 정말 실망 스럽네. 나는'destroy_attached_files'를 아무 소용이 없다. 파일은 여전히 ​​거기에 앉아있다. 나는 단지 클립을 포기할지도 모른다 –