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

发布于 2024-12-04 17:20:39 字数 243 浏览 5 评论 0 原文

我有一个事务类。该类的每个对象包括1个发出账户、1个发送账户和1个接收账户。其中每一个都是 Account 类的一个实例。在我的交易表中,我有 Issuer_id、sender_id 和receiver_id。

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

transaction.issuer
transaction.sender
transaction.receiver

谢谢。

I have a Transaction class. Each object of this class includes one issuing account, one sending account and one receiving account. Each of these is an instance of Account class. In my Transaction table, I have issuer_id, sender_id and receiver_id.

How should I specify relationship between Transaction and Account so that I can call

transaction.issuer
transaction.sender
transaction.receiver

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋风の叶未落 2024-12-11 17:20:39

当无法从关联名称中猜测出类名时,请使用 :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

您可以在 文档

Use :class_name to specify the class name, when it can't be guessed from the association 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

You can read more in the documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文