Просто используйте имена полей в качестве строки
Account.left_outer_joins(:month_forecasts)
.where(month_forecasts: { field: :value }).order('f1, month_forecasts.f2')
Обратите внимание, вам нужно использовать left_outer_joins
(или joins
, если вы не хотите видеть счета без прогнозов) вместо includes
длясортировка
ОБНОВЛЕНИЕ:
По умолчанию выбирается только accounts.*
, но вы можете добавить выбор со всеми столбцами из второй таблицы
Account.left_outer_joins(:month_forecasts).select('accounts.*, month_forecasts.*')
.where(month_forecasts: { field: :value }).order('f1, month_forecasts.f2')