我有一个使用ActiveStorage的带有has_one_attached :avatar的用户模型。头像是可选的,但当它不存在时,我想要显示一个默认值。我将所有附件存储在亚马逊S3上,并且更喜欢将默认设置存储在那里。
如果我能在默认的头像上使用不同的方法,我会更喜欢。
user.avatar.variant(resize: "100x100")对如何实现这一点有什么建议吗?我可以创建某种没有链接到任何特定记录的默认附件,并在头像不存在时使用它吗?
发布于 2018-06-12 20:37:56
不附加默认图像,只需检查是否附加了图像,如果没有,则显示默认图像。在这种情况下,present?方法将不起作用,请改用attached?。
def display_avatar(user)
if user.avatar.attached?
user.avatar
else
'default.png'
end
end发布于 2018-03-30 20:52:31
有两种方法,
在模型中使用此选项(假设您使用的是回形针gem)
:default_url => "/assets/:style/missing.jpeg“
2.Manual
您必须添加helper方法,如下所示
def avatar_check user
if user.avatar.image.present?
image_tag user.image_url :thumb
else
image_tag 'default.jpg'
end
end将default.jpg保存在资源中。
在下面视图调用中,
User.all.each do |u|
= avatar_check u我不确定是不是变种
https://stackoverflow.com/questions/49572425
复制相似问题