Conforme descrito por Nermin, você está tentando solicitar uma coleção de filhos, de uma coleção de filhos.
Você pode usar
collect
reunir os alunos das empresas nos moldes de:@movie.cinema.companies.collect(&:students).flatten.uniq
Mas acho que você faria melhor se adicionasse um escopo ao seu modelo de aluno nas linhas de:
scope :for_companies, ->(_companies) {joins(:companies).where(company: _companies)}
Chamado com
Student.for_companies(@movie.cinema.companies)
Isenção de responsabilidade:não testado, mas deve ser um ponto de partida!