gpt4 book ai didi

ruby-on-rails - 一个模型 "belongs_to"可以是一个/或多个模型吗?

转载 作者:行者123 更新时间:2023-12-04 02:13:51 25 4
gpt4 key购买 nike

抱歉,如果这是一个小菜鸟问题,但希望澄清我对此的想法。我有一个可以属于一个模型或另一个模型的模型。例如:

假设我有一个 Team 模型和一个 Member 模型,这两个模型都可以有一个 BankAccount。

class Team
has_many :members
has_one :bank_account
end

class Member
belongs_to :team
has_one :bank_account
end

class BankAccount
belongs_to :team, :member
end

对我来说,以上是有道理的,但我很想与一些更有经验的 Rails 人澄清这一点? Rails 有没有办法计算出任何给定 BankAccount 的父模型是什么,记住它可能是两个模型之一?例如,如果我在 Team 银行账户上调用 @bank_account.member,它会不会抖动?

谢谢你的帮助。

最佳答案

您可以使用 polymorphic relationship .

您的银行帐户将具有多态关系。

class BankAccount
belongs_to :people, :polymorphic => true
end

而您的两个(或更多)其他模型将有一个简单的 has_many关系。
class Member
has_many :bank_accounts, :as => :people
end

在您的银行帐户中,您可以使用 @account.people这会给你一个 MemberTeam对象,取决于它是什么。

而在您的 MemberTeam型号,您可以通过 @member.bank_accounts 获得相应的银行帐户.

关于ruby-on-rails - 一个模型 "belongs_to"可以是一个/或多个模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1700800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com