gpt4 book ai didi

ruby-on-rails - has_many :through or has_and_belongs_to_many or something else?

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

我有一个项目和用户模型

class Project < ActiveRecord::Base
belongs_to :proposer, class_name: "User", foreign_key: :user_id
end

class User < ActiveRecord::Base
has_many :projects
end

我希望有一个用户是项目提议者并拥有该项目。然后还有其他用户也拥有该项目。例如,用户/提议者将他们添加为所有者,但他们不是提议者。

我该如何建模?我目前只建立了proposer关系。这有点令人困惑,因为我仍在学习更高级的关联。

最佳答案

class Project < ActiveRecord::Base
has_many :users, :through => project_users
has_many :project_users
end

class User < ActiveRecord::Base
has_many :projects, :through => project_users
has_many :project_users
end

现在在包含 user_idproject_idProjectUser 表中添加一个额外的列 role。此角色字段将定义用户 角色,他是提议者 还是通常只是拥有 项目。

然后如果你想找到project proposer,那么project.project_users.where(:role => 'proposer')

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

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