gpt4 book ai didi

ruby-on-rails - rails : has_many :through or has_many_and_belongs_to?

转载 作者:行者123 更新时间:2023-12-04 06:16:50 25 4
gpt4 key购买 nike

我有一个应用程序,我想通过另一个模型(即 Task1>Relationship
基本上,关系模型会有额外的信息(type_of_relationship、lag),因此将其作为连接模型是理想的。然而,没有两个模型可以加入,只有一个……给自己。 has_many :through 仍然有效吗?如果是这样,连接表会是什么样子?使用 Rails 约定,您将有两个名为 Activity_id 的列,这显然在数据库中不起作用。

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

我的直觉是使用 has_many_and_belongs_to 并整理模型中的规则,但有没有更好的方法来做到这一点?我要绕着这个圈子转!

任何帮助表示赞赏。

最佳答案

has_many :through 非常适合您的情况。我不知道你的模型的细节,但假设你有用户,每个用户都可以有其他用户作为联系人。您可以对这种情况进行建模,如下所示:

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

关于ruby-on-rails - rails : has_many :through or has_many_and_belongs_to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com