Omniauth-Facebook宝石最简单的添加个人资料图片的方法是什么?

5

我正在使用Rails的Omniauth Facebook Gem,并需要为每个用户在我的应用程序上设置一个个人资料图片。

仅从Gem中检索用户名称是否足够简单,还是需要将其上传到Amazon S3服务器等?

我的用户模型:

def self.from_omniauth(auth)
    where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      user.name = auth.info.name
      user.oauth_token = auth.credentials.token
      user.oauth_expires_at = Time.at(auth.credentials.expires_at)
      user.save!
    end

找不到明确的答案。

更新: 在我的展示页面中,它只显示URL:

<b>IMAGE:</b> <%= @user.image %>

谢谢

1个回答

3
这很简单。而且你不需要在自己的服务器上存储图片。你可以直接从Facebook获取它。
这是我如何做到的:
在你的User模型中添加一个image字段:
rails generate migration addImageToUsers image:string

将其添加到attr_accessible列表中。

然后在您上面的方法中,为图像添加以下清单:

user.image = auth.info.image

这是 Facebook 存储用户图片的直接链接。
你可以检查你的 auth 哈希来查看不同尺寸的用户图片。

我刚刚想通了,谢谢。我确实做到了!耶。除了我的展示页面只显示URL而不是图片。我添加了上面的代码。 - Erin Walker
1
好的,明白了 <%= link_to image_tag @user.image %> ;) - Erin Walker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接