我已经看过以下内容,但它们并不清楚,尤其是对DataMapper和gem依赖项的引用。
我想要的结果就是能够获取| do |中的@ user.email值循环并显示一个gravatar,其中identicon设置为“y” - 换句话说,那些可爱的看似随意的图纸!
但是当我查看可用内容时,不清楚该怎么做 - 尤其是对DataMapper和gem依赖项的引用。
http://github.com/chrislloyd/gravtastic/tree/master
我正在玩这个,但我想在潜水之前得到别人的反馈!
http://www.thechrisoshow.com/2008/10/27/adding-gravatars-to-your-rails-apps
我安装了wood gravatar插件:
http://github.com/woods/gravatar-plugin/tree/master与下面提到的相同...但是,当我输入时出现错误:
<%= gravatar_for @user %>
错误是:
undefined method `gravatar_for' for #<ActionView::Base:0x474ddf4>
答案 0 :(得分:13)
将此代码放在ApplicationHelper中,以便gravatar_for
在所有视图中都可用。
def gravatar_for email, options = {}
options = {:alt => 'avatar', :class => 'avatar', :size => 80}.merge! options
id = Digest::MD5::hexdigest email.strip.downcase
url = 'http://www.gravatar.com/avatar/' + id + '.jpg?s=' + options[:size].to_s
options.delete :size
image_tag url, options
end
观点:
<%= gravatar_for 'my@mail' %>
<%= gravatar_for 'my@mail', :size => 48 %>
<%= gravatar_for 'my@mail', :size => 32, :class => 'img-class', :alt => 'me' %>
我提炼了倾斜的解决方案。在Gravatar guidelines之后,应该在散列之前修剪和降低电子邮件。此外,似乎不需要require 'digest'
(在Rails 3上测试)。
答案 1 :(得分:8)
不要重复太多,而是要提供更详细的答案:
正如Sam152所说,你必须从用户的电子邮件地址创建一个MD5哈希值,然后用于对gravatar服务器的GET请求。
访问MD5哈希的最简单方法是通过Digest,它是ActionPack(ActionView内部)gem的一部分。将以下内容放在'config / environment.rb'中:
require 'digest'
现在,您只需要使用以下内容显示用户的gravatar:
image_tag("http://www.gravatar.com/avatar.php?gravatar_id=#{Digest::MD5::hexdigest(@user.email)}", :alt => 'Avatar', :class => 'avatar')
这不需要额外的宝石,如果您需要的只是拉入用户的gravatar,您可以根据需要创建帮助。
答案 2 :(得分:1)
您需要MD5 hash该电子邮件地址,然后将其放入一个gravatar网址。这将为您提供图片网址。以下是如何操作的示例。
http://www.gravatar.com/avatar/ md5(email) ?s=128&d=identicon&r=PG
如果您想要显示那些随机图纸,可以使用MD5哈希来获取它们。您可以在循环中散列键值并以此方式获取列表。
答案 3 :(得分:1)
有一个Gravatar Rails插件可以在这里找到:
http://gravatarplugin.rubyforge.org/
像这样安装插件:
ruby script/plugin install svn://rubyforge.org//var/svn/gravatarplugin/plugins/gravatar
安装插件后,如果您的模型响应“电子邮件”方法,此标记将显示Gravatar:
<%= gravatar_for @user %>
答案 4 :(得分:1)
我使用https://github.com/sinisterchipmunk/gravatar 它运作良好,我只使用基础知识,但它可以做兑现和高级选项。
使用起来也很简单:
Gravatar.new(email).image_url
对于你可以添加wavatar的识别符如下
Gravatar.new(email).image_url + '?d=wavatar'