我目前正在使用mdeering的gravatar_image_tag插件为用户获取gravatar图像,但我的两难境地是尝试在代码中检测用户是否有gravatar:
如果他这样做了,那么就显示gravatar图像。如果不是,则在我的服务器上显示一个本地默认图像文件。
我对使用其他插件持开放态度,如果他们提供这个功能。
请提供代码示例。他们帮助我学习最好的东西。
谢谢!
发布于 2011-07-09 12:13:15
你不需要gem/plugins。此screencast将逐步解释您所需的内容。归根结底,它需要使用以下辅助方法:
def avatar_url(user)
default_url = "#{root_url}images/guest.png"
gravatar_id = Digest::MD5.hexdigest(user.email.downcase)
"http://gravatar.com/avatar/#{gravatar_id}.png?s=48&d=#{CGI.escape(default_url)}"
end发布于 2013-06-22 19:48:46
下面是一个辅助方法,用来检查用户是否已经有了一个gravatar图像:
诀窍是获取带有错误默认图像的gravatar图像,然后检查标题响应。它是通过Net::HTTP ruby库实现的。
def gravatar?(user)
gravatar_check = "http://gravatar.com/avatar/#{Digest::MD5.hexdigest(user.gravatar_email.downcase)}.png?d=404"
uri = URI.parse(gravatar_check)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
if (response.code.to_i == 404)
return false
else
return true
end
end发布于 2011-07-09 13:03:36
Gravtastic gem应该会来拯救你。它相当简单--你可以通读它的自述文件。宝石的github link
https://stackoverflow.com/questions/6632543
复制相似问题