我正在尝试为一些个人开发创建一个简单的Web应用程序,但是我遇到了一个障碍,我希望别人会发现这个障碍。我创建了工作班,但我不确定如何定义他们的关系,或者他们的模型是否合适。Ruby on Rails中的对象和关系
为了讨论的方便,我有以下类别已经存在:用户,团队,和运动员
我追求的功能是使用户通过添加创建一个团队一名运动员到球队对象。其他用户可以向球队添加球员,也可以在球队名单上为现有运动员添加替代方案。基本上,我想创建一些类来包装一系列运动员对象,我们将其称为AthleteArray。
如果我的理解是正确的,这是将是适当的关系:
- 所以一个团队将有一对多AthleteArrays
- 的AthleteArray将享有以下权利─很多运动员和属于 a 团队
- 运动员将属于对一个用户,并会属于对一个AthleteArray。
- 用户会有很多运动员,但这将是他们参与的程度。
由于AthleteArray类将没有任何属性,是明智将其创建为一个ActiveRecord对象(将它仅仅有一个ID)?有没有另一种方法来实现这个想法(你可以定义团队类,有一个运动员对象数组数组)?我对RoR知之甚少,但我认为这将是一个开始web开发的好地方。任何帮助,将不胜感激。提前致谢!
编辑:运动员,队伍和运动员阵容的名字并不重要。假设运动员基本上是一个评论,对运动员列表进行了验证。复制是可以接受的。如果我理解所发布的答案,我基本上应该创建一个中间班级,并且需要他们父母的ID。
对Omar的回应: 最后,我想添加投票系统。因此,在创建基本团队之后,用户可以单独建议替换给定的播放器,用户可以投票选出最佳选择。举例来说,如果我有创造了球队chess_players的:
- 菲舍尔
- 卡斯帕罗夫
- 弗拉基米尔·克拉姆尼克
有人会点击卡斯帕罗夫,并决定一个更好的运动员会深蓝,所以这个选项会出现在Kasparov下,直到收到更多的选票。对于每个角色都会发生同样的过程,但与评论系统不同,您无法响应“深蓝”并替换其他玩家,您只需对位置编号2作出回应,并建议其他玩家。
我编辑了我的问题。希望现在有点可以理解。感谢您的回应! – Grantismo 2009-06-28 19:57:57