2013-11-27 9 views
0

나는 레일 웨이 3과 캐리어 웨이브 젬을 사용하고 있습니다. Carrierwave가 그림을 제거하고 기본값으로 다시 설정합니다.

난에이 관리처럼 내 사용자 모델의 아바타 이미지 제거 :

@user.remove_photo! 

을하고 완벽하게 작동합니다. 그러나 해당 사용자의 그림 URL을 default_url (모든 사용자가 업로드 할 때까지 보유하고있는 이미지)으로 되돌리고 싶습니다.

아이디어는 어떻게됩니까?

-

이미지 표시 코드 :

<%= image_tag(@user.photo.send(:layout).url, :alt => @user.full_name, :class => 'photo large') %> 

DEFAULT_URL 코드 : 워드 프로세서

def default_url 
    "default_photo.jpg" 
    end 
+0

을 나는 기본을 설정하지 않을 사용자 아바타의 사진. 정적 인 자산에 이미지가 있고 사용자 이미지가 없으면 기본 이미지를 표시하는 if 문을 수행합니다. – fatfrog

+0

사실 그것이 내가 생각할 수있는 유일한 해결책입니다. 보석이 그림을 기본으로 되돌릴 수있는 방법이 있는지 궁금합니다. – content01

+0

이미지를 표시하기위한 코드를 붙여 넣고 def url에 대한 코드를 붙여 넣으십시오. – fatfrog

답변

0

:

https://github.com/carrierwaveuploader/carrierwave

많은 경우, 특히 이미지 작업을 할 때 파일이 업로드되지 않은 경우의 대체 URL 인 기본 URL을 제공하는 것이 좋습니다 ( ). 당신은 당신의 업 로더에 DEFAULT_URL 방법 를 재정 의하여 쉽게 할 수 있습니다

class MyUploader < CarrierWave::Uploader::Base 
    def default_url 
    "/images/fallback/" + [version_name, "default.png"].compact.join('_') 
    end 
end 

아니면 레일 자산 파이프 라인을 사용하는 경우 :

class MyUploader < CarrierWave::Uploader::Base 
    def default_url 
    ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) 
    end 
end 
+0

아니요, 내 문제를 이해하지 못했습니다. 나는 이미 그것을 가지고있다. 문제는 사진을 삭제 한 후 default_url로 돌아갑니다. – content01

+0

코드를 따르지 않으므로 "/"+ [version_name, "default.png"]이어야합니다. compact.join ('_') – fatfrog

관련 문제