Como lo describe Nermin, está tratando de solicitar una colección de niños, de una colección de niños.
Podrías usar collect
reunir a los estudiantes de las empresas en la línea de:
@movie.cinema.companies.collect(&:students).flatten.uniq
Pero creo que harías mejor en agregar un alcance a tu modelo de Estudiante en la línea de:
scope :for_companies, ->(_companies) {joins(:companies).where(company: _companies)}
Llamado con Student.for_companies(@movie.cinema.companies)
Descargo de responsabilidad:no probado, ¡pero debería ser un punto de partida!