0

我在 Mongoid 中有 1...N 个关系设置

class Student < User
  include Mongoid::Document
   ... 
  has_many :courses

class Course
  include Mongoid::Document
  belongs_to :student

我有2个学生

student1 = Student.create!(...)
student2 = Student.create!(...)


course1 = Course.create!(name: "Course 1")
course2 = Course.create!(name: "Course 2")
course3 = Course.create!(name: "Course 3")

student1.courses = [course1,course2]
student1.save!

student2.courses = [course2,course3]
student2.save!

理想情况下我在 mongodb 中想要什么

Student{
 coures:[CourseId,CourseId,CourseId]
}

我在两个方面都不理想

a)关系保存在 Coures 中(我知道这是根据 mongoid 文档想知道我是否可以翻转这个?)

b)课程只保存一个学生ID而不是一个集合。所以我丢失了数据\

例如在 mongo

Courses
{
"_id" : ObjectId("51f607bdb5b6057c92000005"),
"name" : "Course 1",
"student_id" : ObjectId("51f607bdb5b6057c92000002"),
}
{
"_id" : ObjectId("51f607bdb5b6057c92000006"),
"name" : "Course 2",
"student_id" : ObjectId("51f607bdb5b6057c92000003"),
}
{
"name" : "Course 3",
"student_id" : ObjectId("51f607bdb5b6057c92000003"),
}

我了解http://mongoid.org/en/mongoid/docs/relations.html#has_many 表明这是正确的。

但这不是我所期望的。我想做的事情有关系吗?

4

1 回答 1

0

为任何想知道的人解决了

添加

class Student
  has_and_belongs_to_many :courses, inverse_of: nil

belongs_to :studentCourse

于 2013-07-29T06:58:31.220 回答