2012-08-08 3 views
0

У меня есть две модели, как предмет и преподаватель
Subject модели, какрубин на модели рельсы

class Subject < ActiveRecord::Base 
    belongs_to :sclass 
    has_many :subject_teachers 
    attr_accessible :sub_name 
end 

и Учитель модель, как

class Teacher < ActiveRecord::Base 
    # attr_accessible :title, :body 
    has_many :sclass_teachers 
    has_many :subject_teachers 
    attr_accessible :fname, :lname, :mob, :email 
end 

и создали свою таблицу соединения, как subject_teacher, как многие ко многим

class SubjectTeacher < ActiveRecord::Base 
    belongs_to :subject 
    belongs_to :teacher 
end 

но я хочу получить доступ к учителю n ame в теме/таблице, как я могу это сделать. Что и где я написал идеальный код, чтобы получить конкретное имя учителя для конкретного вопроса , так как есть МНОГИЕ, ЧЕМ МНОГИЕ отношения?

+0

Вы хотите сказать, что вам нужно имя учителя с предметом она занимает в определенном классе? –

+0

да, мне нужно это, но не в определенном классе, так как я говорю, что один преподаватель может учить много предметов, и один субъект может быть принят многими учителями. – Shrikant1712

ответ

1

Вы бы:

has_many :teachers through => :subject_teachers 

, как @Hugo сказал

+0

Я добавил эту заданную строку «has_many: subject_teachers» в моей предметной модели, но как я могу получить доступ имя учителя plz дайте мне подсказку – Shrikant1712

+0

Just Subject.find (1) .teachers – andy

0

Что вы говорите, это немного странно: вы создали отношения многие ко многим, и требуют конкретного учителя для предмет. Так что для многих-многих отношений вы можете получить список учителей. И из этого списка вы могли бы взять первый. Но если вы знаете, что у одного учителя есть максимум для одного предмета, просто has_many намного удобнее.

Вы можете получить доступ к учителям, используя @ subject.subject_teachers.teachers, где @subject является экземпляром Subject.

Если вы используете отношения has-many-and-of-to-many, вы можете опустить промежуточный класс. Вам нужно только то, что у этого отношения есть дополнительные данные, такие как дата и время.

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