在rails上的ruby中构建模型

时间:2013-06-26 10:17:36

标签: ruby-on-rails ruby-on-rails-3.1

在我的rails应用程序中,我有以下模型:用户,游戏和玩家。用户有很多游戏,游戏有很多玩家。到目前为止它真的非常简单,但问题是在一个游戏中,玩家的最大数量是8,并且在达到最大玩家数量之后有可能加入游戏但是你是一个预备队。

所以问题是:我是否应该有额外的储备模型?那些模型应该如何相互关联? 目前我通过向播放器模型添加一个reserve属性来解决它,当达到最大数量时,reserve属性变为1而不是0.这个解决方案感觉有点笨拙,需要大量代码。我想知道是否有人做过类似的事情并且有更好的解决方案。

1 个答案:

答案 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

希望它对你有用。