2017-05-12 6 views
0

내 모델을 다른 모델로 마이그레이션하고 싶습니다. 처럼 내 오랜 모델 본다 : 새로운 모델은 이전과 같은레일스 한 모델에서 다른 모델로 해시가있는 이미지 클립 복사

class Post < ActiveRecord::Base 

    has_attached_file :logo, 
        url: '/test/post/logo', 
        path: ':rails_root/uploads/test/post/:id/logo/:hash', 
        hash_secret: 'secret', 
        styles: { thumb: ['200x150>', :jpg], medium: ['320x240>', :jpg], large: ['480x360>', :jpg] } 
end 

.

new_logo = post.logo 
new_image.logo = new_logo 
new_image.save 

을하지만 불행히도 작동하지 않습니다

현재 나는 다음과 같은 코드로 이미지를 마이그레이션하려고합니다. 다음 오류가 발생합니다.

No such file or directory @ rb_sysopen - /abcde/fghjk/test/post/1/logo/43023e427c1deb69789bbf7b75cf32810fbb6354

디렉토리에서 해시를 검색 할 때 일부 해시와 일치하지 않습니다.

해시가 없으면 charme처럼 작동하지만 해시 첨부 파일이있는 솔루션이 필요합니다.

다른 사람이 내 문제를 해결할 생각이십니까?

+0

여기 보였를? http://stackoverflow.com/questions/14224080/ruby-copy-a-paperclip-attachment-from-one-model-to-another –

+0

네,이 방법을 시도하고 그것이 내가 위에서 설명한 오류가있어 작동해야한다고 생각. – puQ

+0

이전 이미지를 정의 된 경로로 저장했는데 다른 경로와 다를 수 있습니까? –

답변

0

당신은 .path를 사용하여 파일을 읽고 다음 파일 객체를 할당 할 수

new_image.logo = File.open(post.logo.path) 
new_image.save 
+0

나는 그것을 시도했지만 이상하게도 경로의 계산 된 해시가 기존의 것과 일치하지 않습니다. – puQ

+0

파일의 위치가 확실합니까? url 설정은 해시없이 "url : '/ test/post/logo'"로 설정되어 있습니다. 경로 설정에 : 해시가 없어야하거나 URL 설정에 hash : 와일드 카드를 추가해야합니다. – arieljuod

+0

url에는 : id 와일드 카드가 없습니다! – arieljuod