在 Rails 上创建表时需要创建外键吗?

2023-11-25

我现在开始使用 Rails,我查看了论坛,但没有找到任何可以解决我的问题的内容。

在这里,我有一个类别表,它只有一列的名称(类别中没有重复),所以我希望名称作为主键,然后我有一个产品表,其中包含名称、main_photo、描述我想说产品只有一个类别,我是否需要添加一个名为类别的列作为产品中的外键?

一个类别应该有很多产品。

那么在类别模型中如何说名称是主键,以及如何将类别中的假定主键名称与产品中的类别进行对应?


Active Record 中的外键约束并不经常使用,因为 Active Record 背后的思想表明这种逻辑应该属于模型而不是数据库 - 数据库只是一个哑存储:http://guides.rubyonrails.org/migrations.html#active-record-and-referential-integrity.

Rails 的方法是在所有表(包括“类别”表)上都有一个 ID 列,并在“产品”表中有一列名为“Category_ID”的列。请注意,表名是复数。

然后在模型中定义实体产品和类别之间的关系。阅读文章活动记录关联指南它将回答您的所有问题,特别是第 2.1、2.2 和 3.3 节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Rails 上创建表时需要创建外键吗? 的相关文章

随机推荐

  • 使用 iText5 for .NET 读取 PDF 文件

    我使用 C 作为编程平台iTextSharp阅读 PDF 内容 我使用下面的代码来读取内容 但似乎是每页读取的 public string ReadPdfFile object Filename string strText string
  • 如何在其他类中使用PDO连接?

    我认为我在理解 OOP 的工作原理方面存在问题 我已经更改了它可以工作的代码 但这不是我认为的正确方式 以下场景 不 我不是自己创建用户登录 它实际上只是为了本地开发人员更好地理解 OOP 我有一个database php 文件 class
  • iOS Safari 隐私浏览 localStorage 和 sessionStorage 支持吗?

    我在 StackOverflow 上发现了一些问题 解决了 iOS Safari Private Browsing 的特定功能和sessionStorage and localStorage 但我还没有找到明确的资源来表示 iOS Safa
  • WebRequest 不发送客户端证书

    我正在为 REST API 编写一个客户端 为了对 API 进行身份验证 我必须使用提供给我的证书 这段代码如下 public string GetCustomer int custId X509Certificate2 Cert new
  • fgetcsv 正在吃掉字符串的第一个字母(如果它是变音符号)

    我正在将 Excel 生成的 CSV 文件中的内容导入到 XML 文档中 例如 csv fopen csvfile r words array while pair fgetcsv csv FALSE array push words ar
  • TurboParser 的依赖解析输出是什么意思?

    我一直在尝试使用由生成的依赖解析树CMU 的 TurboParser 它工作完美 但问题是文档太少 我需要精确理解他们的解析器的输出 例如 这句话 我用统计方法解决了这个问题 生成以下输出 1 I PRP PRP 2 SUB 2 solve
  • 如何让 Protractor 不等待 $timeout?

    我正在使用 Protractor 测试我的角度应用程序 用户登录到我的应用程序后 我设置了 timeout 以在一小时内完成某些工作 因此 如果用户在 13 00 登录 timeout 将在 14 00 运行 我不断遇到这些失败 Timed
  • 如何在 C# 中封送集合以传递给本机 (C++) 代码

    我正在从事企业应用程序开发 整个应用程序都是用 C 开发的 除了 UI 是用 C 开发的 现在是时候将 UI 与 C 代码挂钩了 经过详细研究 我选择了 PInvoke 来实现这一点 一切都很成功 我唯一遇到的问题是如何将集合传递给 C 代
  • 以 ip 地址为目标的 Powershell 远程处理

    我在 Server 2008 R2 上成功启用了 PSRemoting 我可以使用主机名作为目标从同一网络内执行远程 pssession 当我尝试从任何计算机 在网络内或从另一个网络 例如通过 VPN 使用 IP 地址作为目标时 我失败了
  • AVPlayer 不会触发playbackBufferEmpty 但也不播放

    我使用 AVPlayer 通过互联网播放音频直播 如果暂停时间超过 1 分钟 我喜欢恢复播放 I call player rate 1 0恢复 但是 如果流暂停超过 1 分钟 则不会再播放 在这种情况下 我需要重新创建 AVPlayerIt
  • Rest API 中 Streamfield 的自定义表示

    我对这个话题有几个疑问 https groups google com forum topic wagtail developers Z4oaCIJXYuI 我正在构建一个无头 Wagtail 具有基于 React 的前端 它调用 Wagt
  • 确定浮点平方根

    如何确定浮点数的平方根 牛顿拉夫森法是个好方法吗 我也没有硬件平方根 我也没有硬件除法 但我已经实现了浮点除法 如果可能的话 我宁愿尽可能减少除法的数量 因为它们非常昂贵 另外 减少迭代总数的初始猜测应该是什么 太感谢了 当您使用 Newt
  • 当 @Context 用于 setter/field/constructor 注入时,HK2 Factory 在 Jersey 过滤器之前调用

    我已经能够根据过滤器注入我的球衣资源如何将对象注入球衣请求上下文中 这使我能够成功注入方法参数 GET public Response getTest Context MyObject myObject this works 但是 对于 s
  • iOS 上的 BLE 连接设备到底是什么?

    The CBCentralManager retrieveConnectedPeripherals方法说它获取 当前连接到系统的外围设备的列表 这里系统的定义有点模糊 这是否意味着我获得了连接到我的应用程序的外围设备列表 或者连接到的外围设
  • 沿着贝塞尔曲线路径的一部分对 UIView 进行动画处理

    我正在尝试沿着贝塞尔曲线路径的一部分对 UIView 进行动画处理 我找到了一种使用以下代码将视图移动到路径的任何部分的方法 let animation CAKeyframeAnimation keyPath position animat
  • JBoss 7:如何更改 WAR 上下文根

    我有一个要部署在 WAR 文件 app war 中的应用程序 部署后可以从 http 8080 应用程序 我希望将其提供为类似的东西 http 8080 秘密 应用程序 我搜索了文档 对于 JBoss es 5 和 6 这似乎可以使用 jb
  • 如何在 IIS 上部署 Angular 和 .NET Core Web API?

    我们在 IIS 上有两个网站 分别用于 angular client 和 web api 托管捆绑包已安装 并且已授予 IUSR 网络 网络服务和Everyone 等用户的权限 每个站点的导航单独工作 即在 API 中 调用http loc
  • 未收到 Google OAuth 刷新令牌

    我想从 Google 获取访问令牌 谷歌 API 说要获取访问令牌 请将代码和其他参数发送到令牌生成页面 响应将是一个 JSON 对象 如下所示 access token ya29 AHES6ZTtm7SuokEB RGtbBty9IIlN
  • R:具有 2 个可能条件 (+/-) 的元素向量的所有可能组合

    我有一个名为的元素向量markers形式 markers lt LETTERS 1 5 中的每个元素markers是布尔类型 有两个可能的条件 and 我想要一种快速有效的方法来获得所有可能的组合 以便考虑两个条件 即使条件不同 标记也不能
  • 在 Rails 上创建表时需要创建外键吗?

    我现在开始使用 Rails 我查看了论坛 但没有找到任何可以解决我的问题的内容 在这里 我有一个类别表 它只有一列的名称 类别中没有重复 所以我希望名称作为主键 然后我有一个产品表 其中包含名称 main photo 描述我想说产品只有一个