gpt4 book ai didi

ruby-on-rails - 关联三个模型的 Rails

转载 作者:行者123 更新时间:2023-12-02 07:59:10 25 4
gpt4 key购买 nike

我的 Rails 应用程序中有以下模型

class User < ApplicationRecord 
end
class Group < ApplicationRecord
end
class Role < ApplicationRecord
end

每个都有多个具有不同角色用户。例如,Group-1 具有 User - ARole - Admin,而 Group-1 具有 User - B 具有角色 - 成员Group-2 具有 用户 - A 具有角色 - 成员 。同样,每个有多个用户,每个用户有多个角色

请指导我应该使用什么样的关联?

最佳答案

您还可以创建一个三相关表,其中记录了用户的每个成员资格并保存该用户的角色。

class Trirelation
belongs_to :group
belongs_to :user
belongs_to :role
end

class User
has_many :trirelations
has_many :groups, through: :trirelations
end

class Group
has_many :trirelations
has_many :users, through: :trirelations
end

class Role
has_many :trirelations
end

如果您需要查询给定用户是否是群组的管理员,

@role = Trirelation.find_by(user_id: 1, group_id: 21).role.name

关于ruby-on-rails - 关联三个模型的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48496387/

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