CarrierWave는 파일 이름 대신 업로드 된 파일의 전체 경로를 데이터베이스에 저장하고 액세스 할 때마다 파일을 다시 생성 할 수 있습니까?전체 경로를 저장하는 Carrierwave
내가 원하는 이유는 이미 업로드 된 파일을 저장하지 않고 파일을 저장하는 구조를 변경하여 새 위치로 이동할 때까지 변경할 수 있기 때문입니다. 당신의 업 로더에
CarrierWave는 파일 이름 대신 업로드 된 파일의 전체 경로를 데이터베이스에 저장하고 액세스 할 때마다 파일을 다시 생성 할 수 있습니까?전체 경로를 저장하는 Carrierwave
내가 원하는 이유는 이미 업로드 된 파일을 저장하지 않고 파일을 저장하는 구조를 변경하여 새 위치로 이동할 때까지 변경할 수 있기 때문입니다. 당신의 업 로더에
, 당신은이 구조를 가지고 :
class YourUploader < CarrierWave::Uploader::Base
...
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
...
end
난 당신이 전체 경로로 store_dir
을 변경하면 당신이 원하는 것을 할 것이라고 생각합니다.
class MyModel
before_save do
self.content_path ||= "uploads/my_model/contents/#{id}"
end
end
이 그런 다음 업 로더는 다음과 같이 표시됩니다 :
내 해결 방법은 별도의 속성에 디렉토리를 저장하는 것입니다 내가 이미 같은 여기서 store_dir을 정의하고 있습니다
class YourUploader < CarrierWave::Uploader::Base
...
def store_dir
model.content_path
end
...
end
, 경로입니다 데이터베이스에만 저장되지 않고 파일 이름에만 저장됩니다. – Pablo
데이터베이스에 전체 경로를 저장하면 새 디렉토리 구조를 정의한 후에 데이터베이스에서 모든 파일을 다시 업데이트해야합니다. – cristian
@ Octopu-Paul, 예, 파일 이동 및 데이터베이스에서의 업데이트는 기록. – Pablo