gpt4 book ai didi

ruby-on-rails - 如何在两个模型之间建立两个 has_many/belongs_to 关系?

转载 作者:行者123 更新时间:2023-12-02 09:46:23 24 4
gpt4 key购买 nike

我有一个 Project 模型和一个 Contact 模型。项目模型有一个所有者和一个客户,两者都是联系人。我显然遇到了一些模棱两可的事情,因为如果我有联系人并询问其项目,Rails 将不知道我询问的是它的项目是客户还是所有者。到目前为止我已经得到了这个:

class Contact < ActiveRecord::Base
has_many :projects
end

class Project < ActiveRecord::Base
belongs_to :owner, :class_name => 'Contact', :foreign_key => 'owner_id'
belongs_to :client, :class_name => 'Contact', :foreign_key => 'client_id'
end

如何在这里建立两个关系?

最佳答案

它类似于在另一个类中定义belongs_to的方式。

基本上

class Contact < ActiveRecord::Base
has_many :projects_owned, :class_name => "Project", :foreign_key => "owner_id"
has_many :projects_as_client, :class_name => "Project", :foreign_key => "client_id"
end

协会的名称可能会更好。我之前描述的单表继承方法也是一种巧妙的方法,但是如果您的 OwnerContact 和 ClientContact 类每个都有很多不同的行为,请使用它,否则它可能只是无用的开销。

关于ruby-on-rails - 如何在两个模型之间建立两个 has_many/belongs_to 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4729725/

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