Таблица My Product имеет несколько версий каждого продукта в разные сроки.Rails 4 (arel?) Присоединяться к подзапросу
Я хочу найти каждый макс (дата), сгруппированный по версии_id. И я хочу ActiveRecord :: Отношение строк, соответствующих этой максимальной дате и version_id.
в приложение/модели/product.rb:
def self.latest_versions
select("max(date) as max_date").
select("version_id").
group("version_id")
end
Как я присоединяюсь продукт с этой «временной таблицы», чтобы получить все продукты, соответствующие даты и версии иды вернулся? Я, очевидно, не могу выбрать: id в приведенном выше методе, поскольку это не столбцы Group By.
Фактический сценарий более сложный, но, возможно, мне не хватает базового принципа, который подпадает под этот упрощенный сценарий?
Отлично! Я пытался использовать «join (subquery, Arel :: Nodes :: OuterJoin)» (что-то было предложено в другом месте), но у него возникли проблемы с навигацией по этому вопросу. Rails (или что-то еще) будет жаловаться на то, что не сможет посетить 'SelectManager' и другие связанные объекты (в зависимости от того, какая перестановка моих неудачных попыток кодирования я был;)) – Volte