ruby-on-rails - 一个模型必须链接到另一个模型还是可以链接到基于相同模型的表?
问题描述
我正在尝试调试在 RoR 上运行的大型应用程序。在我的模型Text
中,我有这种关系:
has_many :copies, :foreign_key => :original_id
这是否意味着我的应用程序中必须有另一个名为 Copie 的模型(应该是 Copy ...),它通过 链接到它,foreign_key
或者它可能只是到另一个使用相同模型的表的链接Text
?
解决方案
在大多数情况下,是的。会有一个Copy
模型。class_name
您可以通过使用选项将其指向不同的模型
通常,如果它引用了不同的表,class_name
就会使用关键字。例如:has_many :copies, :class_name => 'YourOtherModel', :foreign_key => :original_id
按照惯例,Rails 假定用于保存另一个模型上的外键的列是该模型的名称,并添加了后缀 _id。
Rails 确实为您提供了直接设置 :foreign_key 选项的能力:
在此处查看文档
您还可以设计一个必须与自身相关的数据模型:
在此处查看文档
我希望这能为您提供一些见解以进一步调查
推荐阅读
- php - 何从动态表中获取数据
- angular - 当服务需要导入另一个服务时如何避免“循环依赖”错误
- python - 在 pandas 中读取具有非 ascii 字符集的 CSV,然后存储在 PGSQL 中
- homebrew - 自制软件在 MacOS Big Sur 上失败
- typescript - 在 Typescript 中将非 null 值与 null 进行比较时是否可能会收到警告?
- r - ggplot:用图中的点数更新构面标签
- maven - 列出maven中所有缺少的依赖项
- azure - 如何将保留历史记录(时间戳和版本)的 Databricks 表复制到新订阅中的另一个 Databricks?
- swift - 如何在Firebase / Swift中更新字段等于的文档字段
- powershell - PowerShell:Visual Studio Code - 不反映模块中的更改