Rails单淘汰赛

时间:2019-06-11 10:11:29

标签: ruby-on-rails algorithm

所以我有一个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表包含诸如回合数和玩家得分之类的数据。

这是一种很好的解决方法吗?还是有我看不到的更简单的方法?我只是觉得这是解决问题的粗略方法。

1 个答案:

答案 0 :(得分:0)

您不需要指定玩家出现某些比赛的比赛玩家,而是可以将玩家本身用作avathar连接用户来匹配并保存当前回合之类的信息。同样,不需要在锦标赛中使用多余的玩家ID,因为标准化的偏好可能会有所不同,因为您可以按锦标赛从锦标赛中获得玩家。matches.joins:players