2014-08-30 28 views
-2

我通過名爲Classes的連接表連接了Students和Teachers表。 我的目標是通過首先檢查教師是否已經存在,如果不存在,然後創建新的教師檔案,將老師添加到學生檔案中。這些課目前並不重要。有人可以把我推向正確的方向,因爲我只是一個初學者,我無法在指南中找到解決方案。如何在特定情況下通過使用控制器添加has_many?

class Student < ActiveRecord::Base 
    has_many :classes 
    has_many :teachers, through: :classes 
end 

class Class < ActiveRecord::Base 
    belongs_to :student 
    belongs_to :teacher 
end 

class Teacher < ActiveRecord::Base 
    has_many :classes 
    has_many :students, through: :classes 
end 

感謝您幫助菜鳥!

回答

0

你說過'此刻不重要',但不能連接學生&沒有課堂的老師。

如果你與老師有直接的關係,我會做;

1-

@student.teachers << @teacher unless @student.teachers.include?(@teacher) 

2-

@student.teachers.find_or_create_by(params[:teacher]) 

3-

#Rails 3 
@teacher = @student.teachers.find_or_initialize_by_id(params[:teacher_id]) 
@teacher.save 

4-

student = @class.build_student 
teacher = @class.build_teacher 

student.teachers << teacher 

student.save 
teacher.save 
相關問題