所以我有一个User
模型,我想和我的朋友们一起创建锦标赛括号(单淘汰)。我有3种型号:
Tournament
has_many :players
has_many :matches
Player
belongs_to: tournament
belongs_to: user
has_many_and_belongs_to :matches
Match
belongs_to: tournament
has_many_and_belongs_to :players
所以我要做的是当他们创建锦标赛时有一个表单,您可以选择朋友加入其中。
我创建Tournament
对象,然后创建Player
对象,然后最终创建Match
对象。 match_player
表包含诸如回合数和玩家得分之类的数据。
这是一种很好的解决方法吗?还是有我看不到的更简单的方法?我只是觉得这是解决问题的粗略方法。
答案 0 :(得分:0)
您不需要指定玩家出现某些比赛的比赛玩家,而是可以将玩家本身用作avathar连接用户来匹配并保存当前回合之类的信息。同样,不需要在锦标赛中使用多余的玩家ID,因为标准化的偏好可能会有所不同,因为您可以按锦标赛从锦标赛中获得玩家。matches.joins:players