ruby-on-rails - Ruby on Rails 中的三重连接

标签 ruby-on-rails associations

我对 Ruby on Rails 中的关联有疑问。在应用程序中有项目、用户、角色和组。项目属于一个有用户的组,一个用户可以属于许多不同的组,但在该组中只能有一个特定的角色。例如:

在一个组中,用户是项目所有者,但在另一个组中,他是作者。

使用 Rails 中的内置函数实现这一点的最佳方法是什么?

谢谢

最佳答案

这是一组非常快速的模型,可以满足您的要求:

class User < ActiveRecord::Base
  has_many :group_memberships
  has_many :groups, :through => :group_memberships
end

class GroupMembership < ActiveRecord::Base
  belongs_to :user
  belongs_to :role
  belongs_to :group
end

class Role < ActiveRecord::Base
  has_many :group_memberships
end

class Group < ActiveRecord::Base
  has_many :group_memberships
  has_many :users, :through > :group_memberships
end

基本上有一个连接表,其中包含用户、组和角色 ID。我将迁移作为提问者的练习

关于ruby-on-rails - Ruby on Rails 中的三重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636296/

相关文章:

ruby-on-rails - 在 Ruby/Rails 中使用全局变量或常量变量?

ruby-on-rails - 在 Rails 控制台中禁用数据库写入(仅针对当前 session )?

ruby-on-rails - 在 Rails 中使用具有多态关联的 "_type"列

mysql - 计算实体,在 Doctrine2 中?

mysql - 查找具有特定值的所有关联的记录

php - 在 CakePHP 中获取关联模型的计数总和

ruby-on-rails - Rails 日志在生产中无法正常工作

ruby-on-rails - Rails 5 - 事件存储 - 变体 - 异常 : "#<MiniMagick::Error: ` mogrify -resize-to-fit [800, 800]"

ruby-on-rails - 关于 yarn 的解释和最佳实践 - 警告完整性检查 : System parameters don't match

ruby-on-rails - Ruby on Rails - 关联、模型和收藏夹