提问人:Christopher Wippel 提问时间:6/25/2020 更新时间:6/25/2020 访问量:135
Gravatar 显示哈希而不是图片
Gravatar shows hash instead of picture
问:
我想使用 Gravatar 在我的平台上显示图片,但我只看到 MD5 哈希值,而不是这样做。
这是我的“application_helper.rb”代码
def avatar_url(user)
gravatar_id = Digest::MD5::hexdigest(user.email).downcase
"https//www.gravatar.com/avatar/#{gravatar_id}.jpg?d=identical&s=150"
end
end
我也试过了,也没有用。d=mm
d=identicon
这是我在导航栏中使用的代码:
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
role="button" aria-haspopup="true" aria-expanded="false">
<%= image_tag avatar_url(current_user), class: "img-circle" %>
<%= current_user.fullname %> <span class="caret"></span>
</a>
有什么我可以尝试的吗?
感谢您的帮助:)
答:
0赞
Christian Bruckmayer
6/25/2020
#1
你的 gravatar URL 是错误的,你错过了之后的 .也不是必需的。:
https
www
def avatar_url(user)
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
"https://gravatar.com/avatar/#{gravatar_id}.jpg?d=identical&s=150"
end
end
https://en.gravatar.com/site/implement/images/ruby/
评论
1赞
max
6/25/2020
第二行应为 en.gravatar.com/site/implement/images/rubygravatar_id = Digest::MD5::hexdigest(user.email.downcase)
0赞
Christian Bruckmayer
6/25/2020
好点@max,固定!尽管问题的根本原因是由错误的 URL 引起的,而不是电子邮件地址的规范化。还添加了答案的文档链接。
0赞
max
6/25/2020
是的,但任何带有大写字符的电子邮件也会创建无效的哈希值。.Digest::MD5.hexdigest('[email protected]').downcase != Digest::MD5.hexdigest('[email protected]'.downcase)
0赞
Christopher Wippel
6/25/2020
谢谢@ChristianBruckmayer工作正常。我检查了代码 500 次,没有看到缺少......:
0赞
Christian Bruckmayer
6/26/2020
是的,马克斯,这就是为什么我承认它,甚至在答案中更改了它。但是,根本问题是错误的 URL,而不是大写与小写。如果哈希值错误,则会显示默认的 gravatar 图像,但在手头的问题中,由于 URL 错误,根本没有显示任何图像。虽然您的评论是正确的,但这不是问题的解决方案。
评论