我正在做一个rails项目,它允许多个用户成为组织的一部分(用户只属于一个组织)。组织有多个团队,用户也可以属于多个团队。此外,组织部分还做了其他类似的协会。
class User < ApplicationRecord
has_and_belongs_to_many :teams
end
class Team < ApplicationRecord
has_and_belongs_to_many :users
end
我对添加组织关联的想法是这样的。
class User < ApplicationRecord
has_and_belongs_to_many :teams
belongs_to :organization
end
class Organization < ApplicationRecord
has_many :users
has_many :teams
end
class Team < ApplicationRecord
has_and_belongs_to_many :users
belongs_to :organization
end
还有其他方法,以便我可以添加对未来目的有帮助的组织模型吗?
谢谢。
答案 0 :(得分:0)
我建议使用has_and_belongs_to_many
关系来支持has_many through:
,这样您就可以更灵活地使用Organization
模型。
这样的事情:
class User < ApplicationRecord
has_many :organizations
has_many :teams, through: :organizations
end
class Team < ApplicationRecord
has_many :organizations
has_many :users, through: :organizations
end
class Organization < ApplicationRecord
belongs_to :users
belongs_to :teams
end
通过这种方式,您可以在三个模型之间清晰地定义关联,而不使用has_and_belongs_to_many
的Rails魔法。这允许您使用Organization
模型。