Rails创建用户组

时间:2017-10-29 00:57:53

标签: ruby-on-rails

我对rails很新,我想在我的应用程序中创建用户组。用户可以属于多个组,一个组可以包含许多用户。例如,将有一年级的小组,其中包括所有一年级的教师,他们也将属于其他一些小组。

这是我目前的代码。

class Group < ApplicationRecord
  has_many :users
end

class User < ApplicationRecord
  belongs_to :group
end

目前,如果我将用户分配给Ruby控制台中的一个组,它只允许一个组ID。如何让用户拥有多个group_id?

1 个答案:

答案 0 :(得分:4)

在这种情况下,您应该有一个NxN(多对多)关系。所以你需要一个额外的模型。您可以像这样生成它:

rails g model UserGroup user:references group:references

然后,你改变你的模型:

class Group < ApplicationRecord
  has_many :user_groups
  has_many :users, through: :user_groups
end

class User < ApplicationRecord
  has_many :user_groups
  has_many :groups, through: :user_groups
end

这样,您就可以访问这样的用户组:

User.first.groups

或像这样的群组用户:

Group.first.users

希望这有助于......祝你好运!