Мне нравится добавлять CROSS JOIN в мое приложение RoR. При использовании Arel можно добавлять соединения следующим образом:
cars.joins(Car.arel_table.join(Part.arel_table, Arel::Nodes::OuterJoin).on(Car.arel_table[:id].eq(Part.arel_table[:car_id]))
В моем случае мне нужен CROSS JOIN, но он недоступен в Arel. Как я могу добавить CROSS JOIN к Arel?
Я нашел класс OuterJoin и добавил новый файл со следующим кодом:
module Arel
module Nodes
class CrossJoin < Arel::Nodes::Join
end
end
end
Но, похоже, этого недостаточно, чтобы заставить его работать. Я получаю ошибку TypeError: Невозможно посетить Arel :: Nodes :: CrossJoin