我在 Mongoid 2.3.4 中看到了一些奇怪的行为
class Student
has_and_belongs_to_many: teachers
end
class Teacher
has_and_belongs_to_many: students
end
现在在 IRB
s = Student.first
s.teachers
=> []
s.teacher_ids = [Teacher.first.id, Teacher.last.id]
s.teacher_ids
=> [[BSON::ObjectId4f7c3300913417162c000008, BSON::ObjectId4f7c333b913417162c00000d]]
不知道为什么这个数组是这样嵌套的。我期望
[BSON::ObjectId4f7c3300913417162c000008, BSON::ObjectId4f7c333b913417162c00000d]
这会破坏 Rails 中的多选字段,其中 id 的大量分配会发生,如 IRB 中所示。