Ruby on rails 3 Rails:属于表上的列

Ruby on rails 3 Rails:属于表上的列,ruby-on-rails-3,facebook-graph-api,Ruby On Rails 3,Facebook Graph Api,我在看fb_graph api gem,它在迁移中有一些代码我想不出来,也就是说,对于列类型,它有属于,这不是典型的列类型 class CreateSubscriptions < ActiveRecord::Migration def self.up create_table :subscriptions do |t| t.belongs_to :facebook t.string :object, :fields, :verify_token

我在看fb_graph api gem,它在迁移中有一些代码我想不出来,也就是说,对于列类型,它有
属于
,这不是典型的列类型

class CreateSubscriptions < ActiveRecord::Migration
  def self.up
    create_table :subscriptions do |t|
      t.belongs_to :facebook
      t.string :object, :fields, :verify_token
      t.text :history_json
      t.timestamps
    end
  end

  def self.down
    drop_table :subscriptions
  end
end
这里有一个指向Facebook.rb模型的链接

Facebook.rb

class Facebook < ActiveRecord::Base
  has_many :subscriptions

  def profile
    @profile ||= FbGraph::User.me(self.access_token).fetch
  end

  class << self
    extend ActiveSupport::Memoizable

    def config
      @config ||= if ENV['fb_client_id'] && ENV['fb_client_secret'] && ENV['fb_scope'] && ENV['fb_canvas_url']
        {
          :client_id     => ENV['fb_client_id'],
          :client_secret => ENV['fb_client_secret'],
          :scope         => ENV['fb_scope'],
          :canvas_url    => ENV['fb_canvas_url']
        }
      else
        YAML.load_file("#{Rails.root}/config/facebook.yml")[Rails.env].symbolize_keys
      end
    rescue Errno::ENOENT => e
      raise StandardError.new("config/facebook.yml could not be loaded.")
    end

    def app
      FbGraph::Application.new config[:client_id], :secret => config[:client_secret]
    end

    def auth(redirect_uri = nil)
      FbGraph::Auth.new config[:client_id], config[:client_secret], :redirect_uri => redirect_uri
    end

    def identify(fb_user)
      _fb_user_ = find_or_initialize_by_identifier(fb_user.identifier.try(:to_s))
      _fb_user_.access_token = fb_user.access_token.access_token
      _fb_user_.save!
      _fb_user_
    end
  end

end
class-FacebookENV['fb_client_secret'],
:scope=>ENV['fb_scope'],
:canvas\u url=>ENV['fb\u canvas\u url']
}
其他的
YAML.load_文件(“#{Rails.root}/config/facebook.yml”)[Rails.env]。符号化_键
结束
救援错误号::enoint=>e
raise StandardError.new(“无法加载config/facebook.yml。”)
结束
def应用程序
FbGraph::Application.new配置[:client\u id],:secret=>config[:client\u secret]
结束
def auth(重定向_uri=nil)
FbGraph::Auth.new config[:client\u id],config[:client\u secret],:redirect\u uri=>redirect\u uri
结束
def标识(fb_用户)
_fb_user_uu=通过_标识符(fb_user.identifier.try(:to_s))查找或初始化_
_fb\u用户\u.access\u令牌=fb\u用户.access\u令牌.access\u令牌
_fb\u用户\保存!
_fb_用户_
结束
结束
结束

你有很多问题一个问题,关于
的问题属于
,你可以在这里找到答案:

class Facebook < ActiveRecord::Base
  has_many :subscriptions

  def profile
    @profile ||= FbGraph::User.me(self.access_token).fetch
  end

  class << self
    extend ActiveSupport::Memoizable

    def config
      @config ||= if ENV['fb_client_id'] && ENV['fb_client_secret'] && ENV['fb_scope'] && ENV['fb_canvas_url']
        {
          :client_id     => ENV['fb_client_id'],
          :client_secret => ENV['fb_client_secret'],
          :scope         => ENV['fb_scope'],
          :canvas_url    => ENV['fb_canvas_url']
        }
      else
        YAML.load_file("#{Rails.root}/config/facebook.yml")[Rails.env].symbolize_keys
      end
    rescue Errno::ENOENT => e
      raise StandardError.new("config/facebook.yml could not be loaded.")
    end

    def app
      FbGraph::Application.new config[:client_id], :secret => config[:client_secret]
    end

    def auth(redirect_uri = nil)
      FbGraph::Auth.new config[:client_id], config[:client_secret], :redirect_uri => redirect_uri
    end

    def identify(fb_user)
      _fb_user_ = find_or_initialize_by_identifier(fb_user.identifier.try(:to_s))
      _fb_user_.access_token = fb_user.access_token.access_token
      _fb_user_.save!
      _fb_user_
    end
  end

end