У меня есть 3 модели, но ассоциация немного сложная.
Сначала у меня есть Пользователи, и для двух разных типов пользователей у меня есть две разные модели профиля: Pteacher и Pstudent.
Дело также в том, что у каждого Учителя есть 1 Ученик.
Итак, я сделал такие модели;
class User < ActiveRecord::Base
validates_uniqueness_of :uname
has_many :pteachers
has_many :pstudents
end
class Pteacher < ActiveRecord::Base
has_one :pstudent
belongs_to :user
end
class Pstudent < ActiveRecord::Base
has_one :pteacher
belongs_to :user
end
И теперь, если я сначала выберу Пользователь, чем выбрал Pteacher, чем выбрал Pstudent, например, User.pteacher.pstudent, это выдает ошибку No Method.
НО
Если я выберу Pteacher напрямую, тогда я могу выбрать Pstudent с помощью Pteacher.pstudent.
Проблема в том, что я хочу пройти User=>Pteacher=>Pstudent
Есть ли способ достичь этого?
Кстати, я обнаружил, что не могу добраться ни до одного из методов Pteacher, если создаю его из User. Например, если я пишу в консоль Rails;
user = User.first #Which is a teacher
user.pteachers #This line gives me all the info about that users pteacher
#now funny part
pt = user.pteacher #this works too as now i have pt as a Pteacher which have all the data i want
pt.id #fails???
pt.name #fails???
pt.pstudent #fails???
pt #writes all info about pteacher which has id and name