1

假设我们有一名足球运动员,这名球员只能拥有一两支球队,我的意思是他可能在俱乐部球队和/或国家队,或者什么都不是。在 Rails 关系中做到这一点的最佳方法是什么?

4

2 回答 2

2

我会has_one为每种团队类型创建关系。也许你打电话club_team给另一个national_team。不要使这些关系成为必需。这将实现您的目标,即允许玩家和团队之间存在 0、1 或 2 个关系。

您可以通过重命名模型中的关系来完成此操作。例如,如果你有一个名为的模型,FootballTeam那么你可以有两个这样的关系:

has_one club_team, :class_name => "FootballTeam"
has_one national_team, :class_name => "FootballTeam"

这还将为您提供类似的方法player.club_teamplayer.national_team如果player是您的播放器模型的实例。

于 2012-11-25T23:18:36.067 回答
0

您所需要的只是表格中的一:teams列,该列Players接受一串代表团队的 ID。一个数字表示一个团队,两个(逗号分隔或其他)数字表示两个,无表示没有。

于 2012-11-25T23:17:02.523 回答