0
레일 5와 함께 Carrierwave를 사용합니다. 일부 인스턴스에 여러 이미지를 업로드해야합니다. 그러나 유효성 검사가 실패하면 모든 이미지가 손실됩니다. 업로드 된 파일을 캐싱하기 위해 image_cache
을 찾았지만 단일 파일 업로드에서만 작동합니다.반송파 캐시 여러 파일
여러 파일 업로드를 위해 여러 파일을 캐시 웨이브 방식으로 저장합니다.
감사합니다.
레일 5와 함께 Carrierwave를 사용합니다. 일부 인스턴스에 여러 이미지를 업로드해야합니다. 그러나 유효성 검사가 실패하면 모든 이미지가 손실됩니다. 업로드 된 파일을 캐싱하기 위해 image_cache
을 찾았지만 단일 파일 업로드에서만 작동합니다.반송파 캐시 여러 파일
여러 파일 업로드를 위해 여러 파일을 캐시 웨이브 방식으로 저장합니다.
감사합니다.
, 레일 5.1.4에 대한 Carrierwave 1.2.1
해결 내가보기에 attr_accesor :images
하지 않고 그것을했다 :
컨트롤러= f.file_field :images, multiple: true
= f.hidden_field :images_cache
:
def create
@instance = Model.new(permited_parameters)
add_images
..........
@instance.save
end
private
def permited_parameters
params.require(:model_name).permit(..., ..., :images_cache)
end
def add_images
new_images = params.dig(:model_name, :images) ||
params.dig(:model_name, :images).presence &&
JSON.parse(params.dig(:model_name, :images))
if new_images
images = @instance.images
images += new_images
@instance.images = images
end
end
문제 캐시 된 데이터 형식입니다. 캐시 된 데이터의 위치는 [Array] as JSON