2016-07-13 4 views
1

모델의 이름을 바꾸고 테이블 이름을 업데이트 한 후 모든 클립 클립 개체의 파일 이름을 업데이트하려면 어떻게합니까?모델의 이름을 변경 한 후 클립 이름을 업데이트 하시겠습니까?

Paperclip은 모델 이름을 포함하는 경로에이 클립을 저장합니다. 아마 파일 경로를 업데이 트하는 마이 그 레이션에서 자동으로 방법을 찾고 있는데요.

+0

레코드를 업데이트해야합니까? paperclip이 저장하는 데 사용하는 클래스 이름을 덮어 쓸 수있는 옵션이 있기 때문에 데이터를 변경할 필요가 없습니다. – neydroid

+0

이름을 바꾸고 다른 모델의 이름을 사용해야합니다. –

답변

0

당신은 방법에 새로운 url에 대한 옵션을 통과해야합니다 :

https://github.com/thoughtbot/paperclip/blob/95acf3b898bd782f4429d42fd2d8812505390328/lib/paperclip/attachment.rb#L24

{ 
    path: ':rails_root/public:url', 
    url: '/system/:class/:attachment/:id_partition/:style/:filename' 
} 

당신은해야합니다 :

이 클립이 사용하는 기본값입니다 동작을 무시하고 :class을 새 모델 이름으로 변경하면 경로는 URL을 통해 동적으로 결정됩니다.

class User < ActiveRecord::Base 
    has_attached_file :avatar, url: '/system/:class/:attachment/:id_partition/:style/:filename' 
end 

다른 모델 url 옵션도 무시하지 않으면 다른 모델에서 이전 모델 이름을 사용하는 데주의해야합니다.

+0

'attachment_file_name'은 실제 경로가 아닌 파일 이름 만 포함합니다. –

+0

죄송합니다, 괜찮습니다. 보석 코드를보고 있습니다. – neydroid