我正在通过Michael的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
endusers/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,但它似乎仍然没有装载。也尝试重新启动服务器。不确定问题是什么?
发布于 2017-01-16 21:24:25
您的代码是正确的,但可能在教程中的一个练习中,您编写了一些自定义类来隐藏图像。将image类设置为none
image {
display: none;
}如果不是这种情况,那么从image-display中删除none。
发布于 2017-01-16 20:24:12
那gravatar_for(@user)呢
看起来像一个需要传递变量的方法。
发布于 2017-01-16 20:40:15
您需要凹印头像的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帐户,您将无法删除您的电子邮件地址。大多数用户都在抱怨这个问题。
我希望它能帮上忙
https://stackoverflow.com/questions/41684228
复制相似问题