【发布时间】:2012-07-24 09:52:50
【问题描述】:
在我的应用程序中,我有一个用户对象模型。我正在使用 koala 和 OmniAuth 访问 Facebook。
我试图弄清楚如何将 Facebook 中的数据添加到我的模型中,以便我的控制器正确序列化它。
我已经设法在我的控制器中从 Facebook 获取数据:
token = request.env["omniauth.auth"]["credentials"]["token"]
api = Koala::Facebook::API.new(token)
api.get_object("me")
我想我想出了如何在没有 DB 列的情况下将属性添加到我的模型中,但以一种将其保留在序列化响应中的方式:
def fb_info
{"fb_info" =>"should be here"}
end
def attributes
super.merge('fb_info' => fb_info)
end
那么,将它们组合在一起的首选方式是什么?我需要以某种方式在我的模型中填充属性。为了做到这一点,我需要那里的访问令牌。从控制器调用以填充它们或将令牌传递给模型似乎很麻烦。有没有干净的方法来处理这个?
【问题讨论】:
标签: ruby-on-rails facebook ruby-on-rails-3 activerecord activemodel