Я только учусь рельсам.Мне так нравится в Rails.Это полностью разрушает Java и связанные с ним решения для повышения производительности почти во всех случаях - и я действительно очень быстр в Java с более чем десятилетним опытом ... так что это говорит о чем-то!Если рельсы не делают этого, есть драгоценный камень, который поражает мой разум, насколько он продуктивен.
Тогда есть Активные отношения.Я очень стараюсь использовать это в качестве основного подхода к запросу, но это не нужно.Я обнаружил, что, как только я начинаю создавать запросы, требующие 2-х объединений, я начинаю получать странные сообщения об ошибках, которые не имеют смысла ... и, честно говоря, все области могут быть трудными для рассуждения.
Хотя этот подход может сделать вещи более читабельными, я думаю, что затраты на рассуждение о том, что происходит с точки зрения общей картины ... и стоимость написания запроса ... вероятно, не окупаютсясам.Если вы действительно хорошо разбираетесь в sql ... или в языке, подобном hql ..., такой способ - это потеря производительности.По крайней мере, это для меня.
Я мог бы жить с этим, но я не могу заставить работать вложенное соединение.Например, если у меня A <-> B <-> C, а B - это модель, которая также является отношением «многие ко многим», ActiveRelation жалуется, что имя одного из внешних ключей неверно ... даже если онона самом деле правильно.Я думаю, что это ошибка.Все запросы, которые выполняют одиночные объединения с использованием областей, работают безупречно ... но если вы объедините те же самые области, чтобы сделать 2 объединения, произойдет сбой.Я не вижу способа исправить это.
Я мог бы сделать только одно из объединений, а затем позволить ORM сделать все остальное за меня ... но это будет такая пустая трата производительности.Это закончится катастрофой для большого сайта.Я пишу огромную систему, которая хранит огромные деревья реляционных данных тысячами за запрос.Обход графика с использованием ORM - это слишком большой фактор снижения производительности, поэтому я даже не буду беспокоиться о том, чтобы продолжать кодировать остальную часть приложения.Возможно, мне придется вернуться к Java, если это так.
Кроме того, я не могу найти в сети примеров множественных объединений.Даже документация вряд ли упоминает объединения и слияния вообще.
Итак ... он готов к прайм-тайм?Как сделать действительно сложные соединения 7-9 таблиц в Rails?Rails просто не создан для этого?Я спрашиваю об этом только потому, что если Rails не может справиться с такими запросами, мне, к сожалению, придется прекратить их использовать ... и поверьте мне ... это огромный, настоящий позор ... потому что я абсолютно ЛЮБЛЮ все остальное.Я действительно надеюсь, что я просто неправ, и все в порядке.