我正在研究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,但它似乎仍然没有加载。尝试重启服务器也。不确定问题是什么?
答案 0 :(得分:3)
您的代码是正确的但可能在教程中的一个练习中您编写了一些自定义类来隐藏图像。将image
课程设为none
image {
display: none;
}
如果不是这种情况,请从image-display
删除none
。
答案 1 :(得分:0)
gravatar_for(@user)
看起来像需要传递变量的方法。
答案 2 :(得分: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帐户,则无法删除您的电子邮件地址。大多数用户都在抱怨这个问题。
我希望它有所帮助
答案 3 :(得分: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