我正在使用我的rails项目中的用户头像的CarrierWave上传器,我正在为没有上传图片的用户提供默认URL(从4个选项中随机选择)。正如CarrierWave README所建议的那样,我已经实现了它:
class UserAvatarUploader < ImageUploader
def default_url(*args)
ActionController::Base.helpers.asset_path("avatars/default_avatar_#{rand(4).to_s}.png")
end
end
由于它是一个随机函数,这里的问题是每次重新加载页面时用户的头像都会改变。理想情况下,我想从用户的用户名中获取一个数字,以便他/她的默认头像保持一致。我怎么能这样做?提前谢谢!
答案 0 :(得分:1)
好的,我解决了。基本上我被卡住了,因为我找不到从default_url
方法中获取用户信息的方法。后来我发现变量model
可用,它引用了用户。这是我的最终代码:
class UserAvatarUploader < ImageUploader
def default_url(*args)
number = model.id % 4
ActionController::Base.helpers.asset_path("avatars/default_avatar_#{number}.png")
end
end