你应该能够建立一个分配模型,并使用它,就像任何其他的许多一对多的关系:
class User < ActiveRecord::Base
has_many :student_teacher_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "student_id"
has_many :teachers, :through => :student_teacher_assignments
has_many :teacher_student_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "teacher_id"
has_many :students, :through => :teacher_student_assignments
end
class StudentTeacherAssignment < ActiveRecord::Base
belongs_to :student, :class_name => "User"
belongs_to :teacher, :class_name => "User"
end
我想改变分配的名称是少一点相似,更有意义,但概念应该保持不变
这不是一个坏主意,你会遵循多对多的标准东西,但使用相同的类而不是一个不同的类。有一个名为class_name或:class的关系修饰符。 – 2010-06-23 02:05:15