Множественные отношения принадлежат к двум классам в 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
Вы можете прочитать больше в документации.