我想制作一个rails模型,但我不想将它存储在数据库中

use*_*065 1 ruby ruby-on-rails

我想制作一个能处理所有与facebook相关的问题的对象.例如,我想说object.is_access_token_valid?或object.get_user_email或object.authenticate_user.我想在这个对象中打包很多复杂的功能,我想从对象的用户那里抽象出来.在java中,这将是一个对象.什么会在红宝石/铁轨?

这是我的具体情况:

我收到此错误: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
Run Code Online (Sandbox Code Playgroud)

Mic*_*ley 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
Run Code Online (Sandbox Code Playgroud)