Спасибо! Тема только выглядит очевидной, но может ввести в заблуждение. А еще есть eager_load: решает вроде похожую задачу, предотвращает n+1, использует LEFT JOIN в одном запросе. include делает 2 запроса, но если есть order или where, то тоже один с LEFT JOIN. При этом joins делает INNER JOIN.
Все верно, для полутора землекопов (клерков) и циклом пройтись не дорого будет. Это я как раз пример "ничего страшного", а потом магазин превращается ВБ/Озон через год и все переписывать. Помечтать, если )
Да, отличный пример. Эти методы еще более коварны, когда необходимо каскадное удаление и остается от удаленного юзера какое-нибудь уведомление или связанная часть в случае с delete_all.
Спасибо! Тема только выглядит очевидной, но может ввести в заблуждение.
А еще есть
eager_load: решает вроде похожую задачу, предотвращает n+1, использует LEFT JOIN в одном запросе.includeделает 2 запроса, но если есть order или where, то тоже один с LEFT JOIN. При этомjoins делаетINNER JOIN.Исходник rails с методами и описаниями: здесь.
И все это еще обмотать
any?,present?илиexists?.Голова кругом ))Только
to_sqlприписывать и смотреть, а что в реальности. Может есть более элегантный способ?Рада помочь) вещь незаменимая и всегда под рукой
Согласна, да еще и не на Руби возможно)
Мы вообще пользуемся Sequel на не рельсовом руби-проекте, там эти вещи пишутся значительно очевиднее, в том числе ключи.
Все верно, для полутора землекопов (клерков) и циклом пройтись не дорого будет. Это я как раз пример "ничего страшного", а потом магазин превращается ВБ/Озон через год и все переписывать. Помечтать, если )
Да, отличный пример. Эти методы еще более коварны, когда необходимо каскадное удаление и остается от удаленного юзера какое-нибудь уведомление или связанная часть в случае с delete_all.