Gravatar 图片不显示?

Gravatar image not displaying?

我正在学习 Michael Hartl 的 rails 教程,目前正在尝试将 gravatar 图像添加到用户个人资料中。但是,gravatar 默认图像不会加载到我的用户显示页面上。

helpers/users_helper.rb

module UsersHelper

  def gravatar_for(user)
    gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
    gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
    image_tag(gravatar_url, alt: user.name, class: "gravatar")
  end
end

users/show.html.erb

<% provide(:title, @user.name) %>
<h1>
    <%= gravatar_for @user %>
    <%= @user.name %>

</h1>

users_controller.rb

class UsersController < ApplicationController
  def new
  end

  def show
    @user = User.find(params[:id])
  end
end

我仔细检查了头像 url,但它似乎仍然没有加载。也尝试重新启动服务器。不确定是什么问题?

gravatar_for(@user)

看起来像一个需要传递变量的方法。

您需要 gravatar ID 才能显示您的照片。如果您不想在 gravatar 上开设新帐户,您可以在 users_helper.rb:

中使用以下代码
module UsersHelper

  # Returns the Gravatar for the given user.
  def gravatar_for(user, options = { size: 180 })
    gravatar_id = 1
    size = options[:size]
    gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
    image_tag(gravatar_url, alt: user.name, class: "gravatar")
  end
end

注意 如果您打开了 gravatar 帐户,您将无法删除您的电子邮件地址。大多数用户都在抱怨这个问题。

希望对你有帮助

您的代码是正确的,但您可能在教程中的一个练习中编写了一些自定义 class 来隐藏图像。将 image class 设置为 none

image {
 display: none;
}

如果不是这样,则从 none 中删除 image-display

删除 AvatarHelper 模块中 gravatar_url 字符串开头的 https:

module UsersHelper

  def gravatar_for(user)
    gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
    gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
    image_tag(gravatar_url, alt: user.name, class: "gravatar")
  end
end