2016-03-10 7 views
0

В моем приложении у меня есть 2 класса. Пользователь и класс. Я использую класс пользователя как ученик.Rails ассоциации, has_one to has_many

Я пытаюсь добиться результата, когда:

Классная комната принадлежит к пользователю. У пользователя много классных комнат. В классе есть один студент через класс пользователя. Студент может быть связан со многими классными комнатами.

Чтобы попытаться объяснить далее. У меня классная комната, и пользователь является создателем класса. Когда кто-то присоединяется, они учатся в классе, и я хочу, чтобы там был только один ученик и один создатель.

Я хочу, чтобы ученик был привязан к множеству разных классных комнат, и я хочу, чтобы классные комнаты принадлежали одному пользователю.

Мой текущий код для двух классов выглядит следующим образом:

class User < ActiveRecord::Base 

    has_many :classrooms 

end 

class Classroom < ActiveRecord::Base 

    belongs_to :user 

    has_one :student, :class_name => "User" 

end 

Любой совет высоко ценится. Благодаря!

ответ

2

Я думаю, что вы пытаетесь достичь, это:

class User < ActiveRecord::Base 
    has_many :classroom_users 
    has_many :classrooms, through: :classroom_users 
end 

class ClassroomUser < ActiveRecord::Base 
    belongs_to :classroom 
    belongs_to :user 
end 

class Classroom < ActiveRecord::Base 
    has_many :classroom_users 
    has_many :users, through: :classroom_users 
end 
+0

я думаю, что добавить 'belongs_to: создатель,: class_name => "Пользователь"' 'в модели Classroom' если' classroom' имеет один создатель пользователь т.е. –

Смежные вопросы