Olá pessoal,
Sou novo em Rails e estou montando uma aplicação em RoR, mas que possui uma estrutura de relacionamentos um pouco mais complexos do que estudei até agora. E agora cheguei em um ponto que não consigo encontrar uma forma de fazer elas funcionarem.
É o seguinte:
Basicamente, tenho os models:
- Professor
- Disciplina
- MatrizCurricular (que informa a disciplina para o ano letivo e bimestre)
- ResponsavelDisciplina (que informa para cada disciplina quem é o responsável no ano letivo e bimestre)
Então tenho a relação:
Disciplina ----> MatrizCurricular
|-----------> ResponsavelDisciplina -----> Professor
onde fiz:
class Professor < ActiveRecord::Base
has_many :responsaveis_disciplinas
end
class Disciplina < ActiveRecord::Base
has_many :matrizes_curriculares
end
class MatrizCurricular < ActiveRecord::Base
belongs_to :disciplina
end
class ResponsavelDisciplina < ActiveRecord::Base
belongs_to :professor
belongs_to :disciplina
end
Até aqui tudo bem, eu consigo partindo da disciplina, saber os responsaveis dela, partindo do professor, saber quais disciplinas ele é responsável. Só que não consigo saber pela matriz curricular, por sua disciplina, qual é o responsável dela no bimestre e ano da matriz. No find, eu posso colocar condições, mas eu precisava disso na associação mesmo, uma forma da própria matriz curricular (pelo campo disciplina_id dela) eu conseguisse saber o responsável diretamente, já usando as condições do bimestre e ano letivo da matriz. Ex.:
@m = MatrizCurricular.find_by_id(1)
puts @m.responsavel_disciplina
Isso até me parece básico, mas estou a dias procurando de várias maneiras no google para ver se acho algo parecido com o que preciso, mas não consigo encontrar.
Alguém pode me ajudar?