2015-12-01 5 views
1

Приложение My Rails имеет модель Teachers, что belongs_toUsers. Usershas_oneTeacher. Я использую программу для аутентификации пользователей, поэтому модель пользователей поставляется с полем: last_sign_in_at.Индекс заказа, основанный на атрибуте родительской модели

На одной из моих страниц администрирования я хочу сортировать Teachers по их соответствию last_sign_in_at. Как я мог это достичь?

Я попытался joins в различных формах, например:

@teachers = User.joins(:teacher).order("users.last_sign_in_at") 

, но я не получил ни один из них работать.

+1

Вы хотите получить Учителей, но почему вы вызываете метод из класса User? Вы имеете в виду 'Teacher.joins (: user)'? –

+0

@VanHuy конечно. Извините, ошибка новобранец. – dedles

ответ

1

Если вы настроите ассоциации между вашими моделями правильно и ваш teachers таблица имеет user_id столбец [потому что Teacherbelongs_toUser] в базе данных, то должно работать:

@teachers = Teacher.joins(:user).order("users.last_sign_in_at ASC") 

или:

@teachers = Teacher.joins(:user).order("users.last_sign_in_at DESC") 

Потому что User.joins(:teacher).order("users.last_sign_in_at") вернет пользователей, но не учителей.

Это также задание как подсказка Van Huy в разделе комментариев.

+1

Спасибо, похоже, нужно немного больше практики с методом .joins – dedles

Смежные вопросы