ruby-on-rails:gravatar_for

时间:2010-12-27 21:49:44

标签: ruby-on-rails

我关注的是网站http://railstutorial.org/ 在第7章中,它展示了如何实现的一个例子 使用gravatar_for。

我尝试使用

<%= gravatar_for @user %>

但它在浏览器中无法正确呈现(firefox / opera / chrome)

它渲染这个html:

<div>classgravatartitleratingPGstylewidth:50px;height:50px;background:url(http://www.gravatar.com/avatar/bebfcf57d6d8277d806a9ef3385c078d?rating=PG&amp;size=50) no-repeat;sslfalsealtdefault</div> 

有人能给我这个问题的解决方案吗?我卡住了,我真的不知道要解决这个问题。非常感谢。

4 个答案:

答案 0 :(得分:2)

尝试

image_tag(gravatar_url(@user.email))

答案 1 :(得分:2)

Listing 7.22 in the book使用Gravatar gem中的帮助方法 gravatar_image_tag

  

&lt;%= gravatar_image_tag @ user.email%&gt;

答案 2 :(得分:1)

在你的节目中,你应该像这样粘贴smth:

<h1>
  <%= gravatar_image_tag @user.email %>
  <%= @user.name %>
</h1>

或者您应该使用帮助,请将其复制到users_helper.rb

module UsersHelper

  def gravatar_for(user, options = { :size => 50 })
    gravatar_image_tag(user.email.downcase, :alt => user.name,
                                            :class => 'gravatar',
                                            :gravatar => options)
  end
end

然后您可以在app/views/users/show.html.erb

中使用此功能
<h1>
  <%= gravatar_for @user %>
  <%= @user.name %>
</h1>

答案 3 :(得分:0)

遇到同样的问题。

@JeffH:Fyi,我想我们正在看Rails2 tutorial,而不是Rails3。您可以通过单击屏幕右侧的按钮来切换版本。 2.3版本中的Listing 7.22确实说:

<h2>
  <%= gravatar_for @user %>
  <%= h @user.name %>
</h2>

codevoice的建议对我有用。有谁知道为什么?这是一个版本问题吗?对我来说,命令<%= gravatar_for @user %>生成以下html:

<div>stylewidth:50px;height:50px;background:url(http://www.gravatar.com/avatar/bebfcf57d6d8277d806a9ef3385c078d?rating=PG&amp;size=50) no-repeat;classgravataraltratingPGdefaultsslfalsetitle</div>