je le modèle suivant:traversal dans des rails: de l'enfant à l'enfant des frères et sœurs
class Advisor < ActiveRecord::Base
belongs_to :course
end
class Course < ActiveRecord::Base
has_many :advisors
has_many :sessions
has_many :materials, :through=>:sessions
end
class Session < ActiveRecord::Base
belongs_to :course
has_many :materials
end
class Material < ActiveRecord::Base
belongs_to :session
end
à savoir, chaque conseiller enseigne un cours, chaque cours a des séances, et chaque session a des matériaux. Je veux traverser d'un conseiller à tous les matériaux associés, à savoir quelque chose comme: Advisor.first.materials
J'ai essayé de le faire:
class Advisor < ActiveRecord::Base
belongs_to :course
has_many :sessions, :through=>:course
has_many :materials, :through=>:sessions
end
Mais cela n'a pas fonctionné comme elle a traité des séances comme plusieurs à table n : Unknown column 'sessions.advisor_id' in 'where clause': SELECT 'material'.* FROM 'materials' INNER JOIN 'sessions' ON 'materials'.session_id = 'sessions'.id WHERE (('sessions'.advisor_id = 1))
J'ai ensuite essayé de le faire:
class Advisor < ActiveRecord::Base
belongs_to :course
has_many :materials, :through=>:course
end
pour tenter d'avoir l'association utilise l'association des « matériaux » dans le modèle « cours », mais a reçu:J'ai essayé d'utiliser "sessions" comme source, ce qui a été un bon essai mais m'a fait recevoir seulement les sessions plutôt que les matériaux.
Toutes les idées si cela est possible? J'utilise Rails 2.3.8 (peut-être le temps de mettre à niveau?)
Merci! Amit
Vous avez raison, si bête de moi d'avoir raté ça .. Merci! – AmitA