我有一个Transaction类。此类的每个对象包括一个发卡帐户,一个发送帐户和一个接收帐户。其中每个都是Account类的一个实例。在我的Transaction表中,我有issuer_id,sender_id和receiver_id。
我应该如何指定交易和账户之间的关系,以便我可以调用
transaction.issuer
transaction.sender
transaction.receiver
谢谢。
答案 0 :(得分:16)
使用:class_name
指定类名称,如果无法从关联名称中猜到:
class Transaction
belongs_to :issuer, :class_name => 'Account'
belongs_to :sender, :class_name => 'Account'
belongs_to :receiver, :class_name => 'Account'
end
class Account
has_many :issued_transactions, :foreign_key => :issuer, :class_name => 'Transaction'
has_many :sent_transactions, :foreign_key => :sender, :class_name => 'Transaction'
has_many :received_transactions, :foreign_key => :receiver, :class_name => 'Transaction'
end
您可以在documentation中阅读更多内容。