3 ruby profile ruby-on-rails image
如果没有在注册时设置一个默认配置文件图片,我会被困在辅助方法上.假设我有一个像这样的辅助方法:
def blank_image (user)
base_image = ""
if @user.image.empty?
base_image
else
@user.image
end
end
Run Code Online (Sandbox Code Playgroud)
我需要的是指向的网址,base_image所以我知道在哪里保存这个图像.我猜测资产/图像,但我不知道如何"拼出"图像位置,如果这是有道理的.以及如何在我的视图中实现这一点.提前致谢.
像这样的东西?
def blank_image.url(user)
if @user.image.empty?
"/assets/default_photo.jpg"
else
@user.image.url
end
end
Run Code Online (Sandbox Code Playgroud)
资产上的图像一旦被预编译,就可以从/ assets(与样式表和javascripts相同)中获得,"/ images"路径被删除.
根据您的新评论,最佳解决方案可能是为Carrierwave提供default_url,如果您查看文档,您可以执行以下操作:
class MyUploader < CarrierWave::Uploader::Base
version :thumb do
process resize_to_fill: [280, 280]
end
version :small_thumb, :from_version => :thumb do
process resize_to_fill: [20, 20]
end
def default_url
"/assets/default_images/" + [version_name, "default.png"].compact.join('_')
end
end
Run Code Online (Sandbox Code Playgroud)
然后在你的/ app/assets/images/default_images /你应该添加照片创建文件default.png这是默认图像,thumb_default.png是版本:thumb,最后是small_thumb_default.png,它是版本: small_thumb.
注意两者:thumb和:small_thumb是一个示例,以防您处理上传图像的不同图像版本.
| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |