【问题标题】:Gravatar shows hash instead of pictureGravatar 显示哈希而不是图片
【发布时间】:2020-06-25 12:43:37
【问题描述】:

我想使用 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=mmd=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" %>&nbsp;
                  <%= current_user.fullname %> <span class="caret"></span>
</a>

Picture of the navbar

有什么可以尝试的吗?

感谢您的帮助:)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 navbar gravatar


    【解决方案1】:

    您的 gravatar 网址错误,您在 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/

    【讨论】:

    • 第二行应该是gravatar_id = Digest::MD5::hexdigest(user.email.downcase)en.gravatar.com/site/implement/images/ruby
    • 好点@max,已修复!虽然问题的根本原因是错误的 URL 而不是电子邮件地址的规范化。还添加了答案的文档链接。
    • 是的,但是任何带有大写字符的电子邮件也会产生无效的哈希值。 Digest::MD5.hexdigest('Foo@bar.com').downcase != Digest::MD5.hexdigest('Foo@bar.com'.downcase).
    • 谢谢@ChristianBruckmayer 工作正常。我检查了代码 500 次,并没有看到 : 丢失....
    • 是的,Max,这就是我承认它甚至在答案中改变它的原因。但是,根本问题是错误的 URL,而不是大写与小写。如果哈希错误,则会显示默认的 gravatar 图像,但在当前的问题中,由于 URL 错误,根本没有显示图像。尽管您的评论是正确的,但这不是问题的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多