ruby-on-rails – Rails:has_many:through或has_many_and_belo
发布时间:2020-12-17 02:50:08 所属栏目:百科 来源:网络整理
导读:我有一个应用程序,我想通过另一个模型(即Task1 Relationship Task2)将模型的实例链接到同一模型的另一个实例,我想知道我是否可以使用has_many:through. 基本上,关系模型将具有额外信息(type_of_relationship,lag),因此将其作为连接模型是理想的.但是,没有两
我有一个应用程序,我想通过另一个模型(即Task1> Relationship< Task2)将模型的实例链接到同一模型的另一个实例,我想知道我是否可以使用has_many:through. 基本上,关系模型将具有额外信息(type_of_relationship,lag),因此将其作为连接模型是理想的.但是,没有两个模型可以加入,只有一个……自己. has_many:还能继续吗?如果是这样,联接表将如何显示?使用Rails约定,您将有两个名为Activity_id的列,这显然不适用于数据库. 或者,我可以使用has_many_and_belongs_to在任务模型和关系模型之间设置多个,但我不确定这是否准确描述了一个只能在任何一个关系模型中链接两个任务模型的关系(当然,当然任务可能属于多个关系,因此可能属于多个关系. 我的直觉说要使用has_many_and_belongs_to并对模型中的规则进行排序,但是有更好的方法吗?我正绕着这一圈转圈! 任何帮助赞赏.
解决方法
has_many:完全符合你的情况.我不知道你的模型的细节,但是假设你有用户,每个用户都可以有其他用户作为联系人.您可以按如下方式对此情况建模:
class User < ActiveRecord::Base has_many :contact_records,:foreign_key => :owner_id has_many :contacts,:through => :contact_records,:class_name => "User" end class ContactRecord < ActiveRecord::Base belongs_to :owner,:class_name => "User" belongs_to :user end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |