при условии:
class Foo < ActiveRecord::Base
belongs_to :bar
end
class Bar < ActiveRecord::Base
has_many :foos
end
Вы должны иметь возможность сортировки на уровне базы данных, используя оператор соединения в таблице Bar
s:
Foo.joins(:bar).order(bars: { expired_at: :desc })
Пояснение:
в порядке возрастания с разницей с датой истечения срока действия последней записи в модальной 'B' и сегодняшней датой
Это означает, что самая новая дата должна быть первой, поэтому простой ORDER BY expired_at DESC
должен делать то, что вам нужно.
join
необходим, чтобы вы могли использовать столбец Bar
s expired_at
.
Синтаксис хэша в методе order
необходим для доступа к атрибуту таблицы соединения.