2017-02-27 9 views
0

모델 이름과 해당 테이블의 이름을 바꾸려고하는데 괜찮습니다. 업로드 폴더는 어떻습니까? 업 로더 폴더를 모델 클래스 이름에 연결 한 이와 같은 것을 사용했습니다. 이제 클래스 이름이 변경되었습니다.모델의 이름을 바꾸고 데이터베이스를 이전 할 때 반송파에서 업로드에 사용되는 폴더의 이름을 바꾸는 방법은 무엇입니까?

class CsvImportUploaderUploader < CarrierWave::Uploader::Base 
    permissions 0755 

    storage :file 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 
+0

마이그레이션 또는 rake 작업의 일부로 수동으로 폴더의 이름을 바꾸어야 할 것 같습니다. 이제 분산 시스템/클러스터에서 악몽이 될 수 있습니다. –

답변

0

동일한 모델 이름을 계속 사용할 수 있습니다. 당신이 변환 될 사용자 모델이 있다면 :

User => user 

model.class.to_s.underscore 그냥 문자열 "사용자가"이 예에있는 강조 같이 클래스 이름 자체를 반환합니다. 당신은 그냥 문자 그대로 쓰기 된 모든 항목을 유지하려면

:

"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
"uploads/user/#{mounted_as}/#{model.id}" 

당신이 이름을 걱정하지 않는 경우, 물건은 다른 폴더에 저장됩니다. 당신이 사용자 모델을 가지고 고객 모델을 변경 한 경우 는 다음과 같이 변경 : 당신이 볼 수 있듯이

"uploads/user/#{mounted_as}/#{model.id}" 
"uploads/customer/#{mounted_as}/#{model.id}" 

것은, 그들은 단지 다른 폴더에 저장됩니다. 모든 링크가 계속 작동해야합니다.