抱歉,如果这是一个有点菜鸟的问题,但希望澄清我对此的想法。我有一个模型,它可以属于一个模型,也可以属于另一个模型。例如:
假设我有一个团队模型和一个成员模型,这两个模型都可以有一个 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 的父模型是什么,并记住它可能是两个模型之一?例如,如果我在团队银行帐户上调用@bank_account.member,它会引发不稳定吗?
感谢您的帮助。
你可以使用多态关系 http://wiki.rubyonrails.org/howtos/db-relationships/polymorphic.
您的银行帐户将具有多态关系。
class BankAccount
belongs_to :people, :polymorphic => true
end
你的两个(或更多)其他模型将有一个简单的has_many
关系。
class Member
has_many :bank_accounts, :as => :people
end
然后您可以在您的银行帐户中使用@account.people
这会给你一个Member
or Team
对象,取决于它是什么。
而在你的Member
or Team
型号,您可以通过以下方式获得适当的银行帐户@member.bank_accounts
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)