所以我有一支垒球队和球队的球员。我想拥有它所以你只能为一个团队添加一定数量的玩家(最多3个)。在我的team.rb文件中,我有:
has_many :players
validates :team, :length => {:maximum => 3}
应用程序没有失败,但它也没有认识到3玩家的限制。
任何输入都将不胜感激。
答案 0 :(得分:1)
知道了,不确定是否有更简单的方法。不得不制作自定义模型验证器
validate :maxplayers
def maxplayers
unless team.players.count < 3
errors.add(:base, "You have reached team capacity")
end
end
请注意,这是在player.rb中,由于某种原因,errors.add_to_base不起作用。 另请注意,它是验证,而不是验证。
答案 1 :(得分:0)
你想要做的事情(如果我做对了!)是为了避免超过3名球员与球队联系,但这不是你写的。
长度验证器检查字段长度,因此,例如,如果您有一个带有名称字段的播放器模型,则可以通过这种方式强制使用最大名称长度:
# In the Player model
validates :name, :length => {:maximum => 30}
你想要做的事情更难,你必须在数据库中检查每个团队最多有3名玩家,可能你必须使用模型钩子......(我也是新手!)