在我的rails应用程序中,我有以下模型:用户,游戏和玩家。用户有很多游戏,游戏有很多玩家。到目前为止它真的非常简单,但问题是在一个游戏中,玩家的最大数量是8,并且在达到最大玩家数量之后有可能加入游戏但是你是一个预备队。
所以问题是:我是否应该有额外的储备模型?那些模型应该如何相互关联? 目前我通过向播放器模型添加一个reserve属性来解决它,当达到最大数量时,reserve属性变为1而不是0.这个解决方案感觉有点笨拙,需要大量代码。我想知道是否有人做过类似的事情并且有更好的解决方案。
答案 0 :(得分:0)
您可以向Game模型添加方法。
has_many :players
def is_reserved
self.players.count >= 8 ? true : false
end
然后放置一个条件,你将玩家添加到游戏中。我假设你有@game对象。
unless @game.is_reserved
// add players
else
// show the warning messaage or do nothing
end
希望它对你有用。