要在我的Rails3应用程序中实现Gravatar,我在helper中使用gravatar_image_tag gem,但我在混合2个配置选项时遇到问题:
- 如果用户没有在他的电子邮件中附加一个默认的图像被渲染;但我希望它引用一个外部文件(例如,
http://www.iconfinder.com/ajax/download/png/?id=43350&s=128
而不是:identicon
或其他) - 我还想让图像的在飞行中调整的大小,比如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,这样你就不会得到很多标题信息。