2010-08-10 3 views
1

에서 foobar와 나는 기능을 수행하려고하고 있습니다 :레이크 클립 : 새로 고침 클래스 = S3

rake paperclip:refresh class=foobar 

을 그리고 그것은 작동하기 시작하지만,이 스택과 함께 전화를 끊었 도착 것 같습니다 .. :

** Invoke paperclip:refresh (first_time) 
** Invoke paperclip:refresh:metadata (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute paperclip:refresh:metadata 
rake aborted! 
The specified key does not exist. 

이 클래스의 파일 확장명 중 일부가 더 이상 존재하지 않기 때문에 궁금합니다. 그래서 저는 그것들 중 하나를 찾을 수 없기 때문에 전체 과정을 포기할 것입니다. 말할 수있는 방법이 있습니까, skip over files if they do not exist?

또는 큰 문제인이 오류는 전체 s3 버킷을 클립으로 발견 할 수 없습니다 : 새로 고침 작업.

업데이트

지금까지, 나는 rake paperclip:clean class=foobar을 시도했습니다. 작동하지만 문제를 해결하지 못했습니다.

답변

4

내 가정이 정확했습니다. foobar의 이미지 속성에 나열된 파일이 S3에 있던 파일과 일치하지 않아서 전체 작업을 폭파합니다.

대신 나는 'D이 쓴 : 나는 하나 명의 큰 그룹을 변경하려고 노력

first_batch = Foobar.find(:all) { |f| f.id > 0 && f.id < 100 } 

first_batch.select { |f| f.image.reprocess! if f.image.exists? } 

을하지만 ERRCONN'script/console의 아웃. 그래서 나는 100 개 단위로 그들을 분리했다. 총 430 개의 레코드를 합친다. 걱정 마.

누구든지 더 똑똑한 방법을 사용하면 호기심이 생깁니다. 느리고 지루한 것 같습니다.

+0

클립 클립이 아직 폭탄을 내지 못하도록 업데이트되지 않은 것은 이상합니다. 대단히 실망했다. 고맙습니다. –

+0

매우 유용합니다. 감사합니다! 클립 클립 2.3.12를 사용하고 있는데, 2.3.x 버전에서이 클립이 이미 수정되었는지 궁금합니다. – dgilperez

관련 문제