2014-03-07 2 views
0

사용자가 이미지를 업로드하지 않으면 기본 이미지를 표시하고 싶습니다. 다음은 내 picture_uploader.rb이며 default.png를/images/fallback에 업로드했습니다. 그러나 나는 그것을 작동시킬 수 없다. 모든 팁, 다음에 무엇을 시도 할 수 있을까요?default_url이 CarrierWave (Rails4)와 작동하지 않습니다.

class PictureUploader < CarrierWave::Uploader::Base 

    include CarrierWave::MiniMagick 
    version :thumb do 
    process :resize_to_fill => [150, 150] 
    end 

    # Provide a default URL as a default if there hasn't been a file uploaded: 
    def default_url 
    "/images/fallback/" + [version_name, "default.png"].compact.join('_') 
    end 
end 
+0

확인이 : http://stackoverflow.com/questions/16800511/carrierwave-default-image-doesnt- 디스플레이 –

답변

2

당신의 default_url에 따르면, 이미지의 이름은 thumb_default.png해야한다 :

[2] pry(main)> version_name = 'thumb' 
=> "thumb" 
[3] pry(main)> [version_name, "default.png"].compact.join('_') 
=> "thumb_default.png" 
+0

감사! 이름을 thumb_default.png로 변경했지만 작동하지 않았습니다. 나는 또한 자산 파이프 라인으로 시도했다 : ActionController :: Base.helpers.asset_path ("fallback /"+ [version_name, "default.png"]. compact.join ('_')) 그리고 파일을 => "/ assets/fallback/thumb_default.png "하지만 그건 효과가 없었습니다. Rails가 version_name을 가져 오는 위치를 이해하지 못합니까? – userden

+1

서버 로그를 보거나 웹 속성을 사용하여 찾으려는 이미지의 이름과 경로를 확인하십시오. – cortex

관련 문제