4

为了在我的 Rails3 应用程序中实现Gravatar,我在帮助程序中使用了gravatar_image_tag gem,但是在混合 2 个配置选项时遇到了问题:

  1. 如果用户的电子邮件中没有附加头像,则会呈现默认图像;但我希望它引用外部文件(例如,http://www.iconfinder.com/ajax/download/png/?id=43350&s=128而不是:identicon或其他)
  2. 我还希望动态调整图像的大小,比如说 50px。

独立地,这两个选项都按预期工作,但是当我把它们放在一起时:

def gravatar_for(user, options = { :default => 'http://www.iconfinder.com/ajax/download/png/?id=43350&s=128', :size => 50 })
  gravatar_image_tag(user.email.downcase, :alt => user.full_name,
                                          :class => 'gravatar',
                                          :gravatar => 选项)
结尾

未应用 size 选项,并且 gravatar 以其完整尺寸(在本例中为 128px)呈现。

我做错了什么,或者我该如何实现这种组合?

4

2 回答 2

2

Gravatar 不会为您调整默认图像的大小。我假设如果它没有找到你给它的电子邮件的 gravatar,它只给 ulr 302s 作为默认值。看起来 iconfinder url 中的 's' 参数适用于您尝试抓取的大小,但该图标的大小不是 50px,只有 128、256 和 512 可用

例子:

http://www.iconfinder.com/ajax/download/png/?id=43350&s=256

如果您想要 50px 和 80px 版本的图标,我会将其分别保存到您的应用程序 public/image 目录中,分别为 default_gravatar_50.png 和 default_gravatar_80.png 并像这样更改您的方法。

结尾

def gravatar_for(user, options = {})
  options = { :size => 50 }.merge(options)
  options[:default] = image_tag("default_gravatar_#{options[:size]}.png
  gravatar_image_tag(user.email.downcase,
                     :alt => user.full_name,
                     :class => 'gravatar',
                     :gravatar => options)
end

或者,如果您在图标查找器上找到您喜欢的大小的图标,请像这样更改默认选项的设置。

options[:default] = "http://www.iconfinder.com/ajax/download/png/?id=43350&s=#{options[:size]}"
于 2011-05-04T18:37:06.857 回答
0

图标查找器在这里。您不想链接到下载脚本。相反,只需获取它自己的图像的 URL,这样您就不会获得很多标题信息。

于 2011-05-05T11:45:57.100 回答