множественные отношения принадлежат к двум классам в Rails - PullRequest
6 голосов
/ 14 сентября 2011

У меня есть класс транзакции.Каждый объект этого класса включает одну учетную запись, одну отправляющую учетную запись и одну принимающую учетную запись.Каждый из них является экземпляром класса Account.В моей таблице транзакций у меня есть isser_id, sender_id и receive_id.

Как мне указать отношения между транзакцией и счетом, чтобы я мог позвонить

transaction.issuer
transaction.sender
transaction.receiver

Спасибо.

1 Ответ

16 голосов
/ 14 сентября 2011

Используйте :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

Подробнее можно прочитать в документации .

...