Rails中两个类之间的多个belongs_to关系

Ada*_*NYC 6 activerecord ruby-on-rails active-relation

我有一个Transaction类.此类的每个对象包括一个发卡帐户,一个发送帐户和一个接收帐户.其中每个都是Account类的一个实例.在我的Transaction表中,我有issuer_id,sender_id和receiver_id.

我应该如何指定交易和账户之间的关系,以便我可以打电话

transaction.issuer
transaction.sender
transaction.receiver
Run Code Online (Sandbox Code Playgroud)

谢谢.

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

您可以在文档中阅读更多内容.