2011-02-28 5 views
3

두 가지 모델 - Album 및 AlbumImage가 있습니다.양식없이 Carrierwave를 사용하여 파일 저장

각 앨범에는 앨범 이미지가 있으며 Carrierwave를 사용하여 AlbumImageUploader 클래스를 통해 업로드됩니다.

이제 기존의 앨범 이미지를 사용하여 앨범별로 앨범 표지를 선택하고 싶습니다. 앨범 표지로 사용하기 전에 선택한 이미지를 처리 ​​(자르기 및 크기 조정)해야합니다. 자르기 및 크기 조정 함수를 내렸고이 앨범 이미지 처리 버전을 저장하는 AlbumCoverUploader 클래스를 만들었습니다.

문제는 이번에는 새 이미지 파일을 업로드하는 대신 양식을 사용하여 파일 시스템에있는 기존 앨범 이미지를 사용하고 있으며이 이미지를 내 AlbumImageUploader 클래스에서 내 AlbumCoverUploader 클래스.

아이디어가 있으십니까?

답변

1

이것은 매우 간단합니다. 양식에서 업로드하는 것과 같은 방식으로 AlbumCoverUploader를 구성해야합니다. AlbumCoverUploader가 자신의 복사본을 생성하는

album = Album.find(id)     # your existing album 
album_image = album.album_images.first # the image you want as cover 
album.cover = File.open(album_image.image.current_path) 
album.save 

이 이미지 파일을 잡아 입력으로 사용합니다 :

비록, 기존 레코드와 관련된 이미지를 사용하려면 다음을 수행해야합니다 이미지의

관련 문제