模型是否必须链接到另一个模型,或者它可以链接到基于同一模型的表?



我正在调试一个运行在RoR上的大型应用程序。在我的模型Text中,我有这样的关系:

has_many :copies, :foreign_key => :original_id

这是否意味着在我的应用程序中必须有另一个模型称为复制(应该是复制…),它通过foreign_key链接到它,或者它可能只是一个链接到另一个表,使用相同的模型Text?

在大多数情况下,是的。有一个Copy模型。您可以通过使用class_name选项

将其指向不同的模型通常,如果它有对另一个表的引用,则会使用class_name关键字。例如:has_many :copies, :class_name => 'YourOtherModel', :foreign_key => :original_id

按照惯例,Rails假定用于保存另一个模型上的外键的列是该模型的名称,并添加了后缀_id。

Rails提供了直接设置:foreign_key选项的能力:

查看这里的文档

你也可以设计一个数据模型,使其与自身相关:

查看这里的文档

我希望这能给你提供一些进一步调查的洞察力

最新更新