Rails外键设置问题

问题描述

| 我只是(重新)开始使用Rails,并且正在制作一个小型纸牌游戏应用。我似乎无法弄清楚我的外键设置。 假设我有4个对象: - 游戏 -玩家 -手 -卡 一个游戏有很多玩家,有很多手,有很多卡。但是这些牌也独立于手牌,牌手和游戏。 例如,我的数据库中有6张卡(1到6)。卡3可能在同一游戏中处于2个玩家手中。 如何为此设置密钥?我是否应该为\“ CardInHand \”创建另一个对象以简化它?     

解决方法

        卡和手之间的关系是经典的
Has And Belongs To Many
(HABTM)。当您具有HABTM关系时,需要一个表来管理配对(例如,hands_cards中仅包含成对的ID),但是不需要相应的模型。 (请注意,您将需要创建一个迁移来自己生成hands_cards表;它不会自动创建。) 正如您说的那样,您确实可以选择创建一个单独的模型来代表一张在手的卡片-这是
has_many :through
关系-但是我仅在有特殊原因将此关系建模为一个具体的对象。     ,        Rails的标准最佳实践不是在数据库中使用外键,而是在模型上使用验证以确保数据正确性。 另一个答案说明了您要设置的内容。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...