Я думаю, что вы можете пересмотреть свою схему. Вы действительно хотите, чтобы ученик принадлежал только к одному классу?
Я бы рекомендовал настроить класс так же. Измените модель студента, чтобы иметь идентификатор, имя. Затем установите класс HABTM для учащихся, установите класс hasAndBelongsTo. Вам понадобится объединительная таблица grades_students, которая будет связывать студентов и оценки.
Теперь у каждого учащегося может быть> 1 класс, хотя вы ограничены только 1 классом на каждого учащегося (что, если ученик повторяет урок? Это должно определяться вашим бизнес-планом ...)
Наконец, с этой настройкой вам нужно будет использовать поведение Containable. Это позволит вам отфильтровать по модели Стьюдента критерии из связанных моделей (как правило, с HABTM вы не можете сделать это иначе).