Ruby on rails Rails 4设置与HABTM的关系

Ruby on rails Rails 4设置与HABTM的关系,ruby-on-rails,ruby-on-rails-4,has-and-belongs-to-many,Ruby On Rails,Ruby On Rails 4,Has And Belongs To Many,我有两个现有的模型-学校和用户 class School < ActiveRecord::Base has_and_belongs_to_many :users class User < ActiveRecord::Base has_and_belongs_to_many :schools 班级学校

我有两个现有的模型-学校和用户

class School < ActiveRecord::Base
has_and_belongs_to_many :users

class User < ActiveRecord::Base
has_and_belongs_to_many :schools
班级学校

我的问题是,我如何分配和使用学校?我不太清楚如何获取它,以便School.users返回任何值。

如果您希望用户只属于某个特定学校(这对学生、教师、员工等最有意义),则需要将您的关联更改为:

学校

有很多:用户

使用者

属于:学校

那么你也需要有一个 user\u id:学校表中的整数列

现在您可以查询了

学校

学校用户


如果需要多对多关系,则需要创建一个带有school\u id和user\u id字段的schools\u users表。

该关系是为学校实例(特定学校)定义的,因此
school.users
将永远无法工作

假设您有正确的表设置(您必须手动创建联接表的迁移,例如,请参见),这实际上相当简单

school = School.first
user = User.first

# add user to school
school.users << user

# or v.v.
user.schools << school
school=school.first
user=user.first
#将用户添加到学校
学校用户