ruby on rails 3 -你如何拥有一个外部的默认Gravatar,它实际上可以正确地调整大小



要在我的Rails3应用程序中实现Gravatar,我在helper中使用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。小写,:alt => user.full_name,:class => 'gravatar';:gravatar => options)之前结束

不应用大小选项,并且重力图以其全尺寸呈现(在本例中为128px)。

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

Gravatar不会为您调整默认图像的大小。我认为,如果它没有找到你给它的电子邮件的重力,它只是302s的ulr作为默认值。看起来图标查找器url中的's'参数是针对你想要抓取的大小的但是那个图标没有50px的大小只有128、256和512

的例子:

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

如果你想要一个50px和80px版本的图标,我会把它保存到你的应用程序公共/图像目录下,分别为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]}"

图标查找器在这里。您不希望链接到下载脚本。而是直接获取图像本身的URL,这样你就不会得到很多标题信息。

相关内容

  • 没有找到相关文章

最新更新