当前位置:  开发笔记 > 编程语言 > 正文

Rails:has_many:through或has_many_and_belongs_to?

如何解决《Rails:has_many:through或has_many_and_belongs_to?》经验,为你挑选了1个好方法。

我有一个应用程序,我想通过另一个模型(即Task1> Relationship

基本上,关系模型将具有额外信息(type_of_relationship,lag),因此将其作为连接模型是理想的.但是,没有两个模型可以加入,只有一个......自己.has_many:还能继续吗?如果是这样,联接表将如何显示?使用Rails约定,您将有两个名为Activity_id的列,这显然不适用于数据库.

或者,我可以使用has_many_and_belongs_to在任务模型和关系模型之间设置多个但我不确定这是否准确地描述了一个只能在任何一个关系模型中链接两个任务模型的关系(当然,当然任务可能属于多个关系,因此可能属于多个关系.

我的直觉说要使用has_many_and_belongs_to并对模型中的规则进行排序,但是有更好的方法吗?我正绕着这一圈转圈!

任何帮助赞赏.



1> Milan Novota..:

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

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有