Gravatar图片不显示?

问题描述 投票:0回答:4

我正在通过Michael Hartl的rails教程,我正在尝试将一个gravatar图像添加到用户配置文件中。但是,gravatar默认图像不会加载到我的用户显示页面上。

助手/ 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

用户/ 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

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

ruby-on-rails ruby-on-rails-5
4个回答
3
投票

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

image {
 display: none;
}

如果不是这样,那么从image-display删除none


0
投票

怎么样gravatar_for(@user)

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


0
投票

您需要使用权益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帐户,您将无法删除您的电子邮件地址。大多数用户都在抱怨这个问题。

我希望它有所帮助


0
投票

删除您的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
© www.soinside.com 2019 - 2024. All rights reserved.