我有两个现有的模型 - 学校和用户。
class School < ActiveRecord::Base
has_and_belongs_to_many :users
class User < ActiveRecord::Base
has_and_belongs_to_many :schools
我的问题是,我如何分配和用户到学校?我无法弄清楚如何获取它以便School.users返回任何值。
答案 0 :(得分:1)
该关系是针对学校(特定学校)的实例定义的,因此School.users
永远不会有效。
假设您有正确的表设置(您必须手动为连接表创建迁移,请参阅例如here),这实际上非常简单。
school = School.first
user = User.first
# add user to school
school.users << user
# or v.v.
user.schools << school
答案 1 :(得分:0)
如果您希望用户只属于某个特定学校(对于学生和教师,员工等最有意义),您需要将您的关联更改为:
学校
has_many:用户
用户
belongs_to:school
然后你还需要一个 user_id:学校表中的整数列。
现在您可以查询。
school = School.first
school.users
如果你想要多对多的关系,你需要创建一个带有school_id和user_id字段的schools_users表。