Множественные отношения принадлежат к двум классам в Rails

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

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

transaction.issuer
transaction.sender
transaction.receiver

Спасибо.

1 ответ

Решение

Использование :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

Вы можете прочитать больше в документации.

Другие вопросы по тегам