У меня есть модели A и B. A has_many B. Теперь я хочу получить все записи A, упорядоченные по обновленному B. Можно ли написать для этого функцию поиска?Как получить модель, используя порядок соответствующей модели?
0
A
ответ
1
попробовать что-то вроде этого:
A.find(:all, :include => ['Bs'], :order => 'Bs.updated_at')
0
Это не имеет смысла, когда A имеет много Bs.
Рассмотрим пример:
A1 => [B1, B2]
A2 => [B3, B4]
Допуская следующее:
B1.updated_at => 2.days.ago
B2.updated_at => 1.day.ago
B3.updated_at => 4.days.ago
B4.updated_at => 1.days.from_now
Теперь, который один должен прийти первым, А1 или А2?
+0
Предполагая, что v взять последнее обновление. Принимая этот случай, порядок должен быть A2, A1, поскольку B4 является наименее модифицированным и затем наступает B2. – Rahul
1
Вместо А и В, позволяет сказать, что Учитель имеет много студентов:
teachers = Teacher.joins(:students).order('students.updated_at').uniq
Какая версия Rails вы используете? – Mischa