2014-03-07 38 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

查看您的服务器日志或使用Web检查器来识别它试图找到的映像的名称(和路径)。 – cortex

相关问题