我想创建一个可以处理所有与facebook相关的问题的对象。例如,我想说object.is_access_token_valid?或object.get_user_email或object.authenticate_user。我想在这个对象中打包很多复杂的功能,我想从对象的用户那里抽象出来。在java中,这将是一个对象。这会是什么在ruby / rails中?
以下是我的具体情况:
我收到此错误:ActiveRecord :: StatementInvalid:找不到表
这是我的代码:
class FacebookSession < ActiveRecord::Base
#include OauthHelper
attr_accessor :fb_token, :fb_client, :fb_user_id, :fb_email
def initialize
@fb_client = client # makes new oauth client
@fb_token = OAuth2::AccessToken.new client, fb_token
end
def get_email
self.fb_token.get('/me/interests')
end
def get_fb_user_id
self.fb_token.get('/me/interests')
end
def authenticate
#if this fb_user_id is in the database, log them in otherwise don't
end
def is_valid?
if(try_access_token(self.access_token))
return true
else
return false
end
end
end
答案 0 :(得分:6)
如果你没有从第一行的ActiveRecord::Base
延伸,你可以得到一个简单的类,你可以使用它来保存你想要的任何逻辑。
class FacebookSession
attr_accessor :fb_token, :fb_client, :fb_user_id, :fb_email
def initialize(client, fb_token)
@fb_client = client # makes new oauth client
@fb_token = OAuth2::AccessToken.new client, fb_token
end
def get_interests
@fb_token.get('/me/interests')
end
# etc
end
# somewhere else
session = FacebookSession.new(client, token)
email = session.get_interests
答案 1 :(得分:1)
另外,请查看Ryan Bates的截屏视频。他谈到了“积极的无记录”模式。