2013-09-24 71 views
1

的SQLAlchemy的文檔是偉大的,但有時有人從Rails和活動記錄來有點勢不可擋。SQLAlchemy的等同於活動記錄has_one_through

鑑於這種活動記錄關係組會是什麼SQLAlchemy的等效通過中介表建立的關係?

具體給出的基本活動記錄下面的例子我想了解如何定義SQLAlchemy的等價關係,它可以允許一個賬戶SQLAlchemy的模型被捆綁到AccountHistory模型。我不清楚我是否應該使用映射函數,我覺得我在SQLAlchemy中缺少一些簡單的東西。

class Supplier < ActiveRecord::Base 
    has_one :account 
    has_one :account_history, through: :account 
end 

class Account < ActiveRecord::Base 
    belongs_to :supplier 
    has_one :account_history 
end 

class AccountHistory < ActiveRecord::Base 
    belongs_to :account 
end 

回答

0

也許我誤解了has_one_through的工作原理。現在回想起來,我認爲你正在尋找的東西是這樣的:

class Supplier(Base): 
    __tablename__ = 'supplier' 
    id = Column(Integer, primary_key=True) 

class AccountHistory(Base): 
    __tablename__ = 'account_history' 
    id = Column(Integer, primary_key=True) 
    account_id = Column(Integer, ForeignKey('account.id')) 

class Account(Base): 
    __tablename__ = 'account' 
    supplier_id = Column(Integer, ForeignKey('supplier.id'))