Объединить (/ объединить) 2 несвязанные таблицы в Rails (Activerecord), которые не имеют общего поля, но имеют столбцы с одинаковым именем - PullRequest
0 голосов
/ 03 июля 2019

У нас есть 2 таблицы базы данных, которые находятся в одном модуле. Допустим, у нас есть Сервер в качестве модуля и Виртуальный и Физический как классы.

Virtual:
mac          serial_number     ip              name
AB:CD:EF       12345           1.2.3.4         host1
AB:BC:CD       2345            2.3.4.5         host2

Physical:
mac          serial_number     ip               name
BC:CD:EF      3456             3.4.5.6          physicalhost1
CD:DE:EF      4567             4.5.6.7          physicalhost2

После слияния я хочу, чтобы это выглядело примерно так:

mac          serial_number     ip              name
AB:CD:EF       12345           1.2.3.4         host1
AB:BC:CD       2345            2.3.4.5         host2
BC:CD:EF       3456            3.4.5.6         physicalhost1
CD:DE:EF       4567            4.5.6.7         physicalhost2

Мне нужен способ объединения этих таблиц и временного хранения созданной таблицы в памяти с этими именами столбцов. Я хочу, чтобы вывод был в ActiveRecord_Relation типа. Я объясняю это тем, что эти данные поступают в таблицу данных и требуют упорядочения, сортировки и разбивки на страницы.

Когда я делаю это:

::Server::Physical.joins(:virtuals)

Я получаю эту ошибку:

ActiveRecord::ConfigurationError
- Can't join 'Server::Physical' to association named 'virtuals';
perhaps you misspelled it?:

Когда я делаю это:

::Server::Physical.merge( -> { joins(:virtuals)})

Я получаю ту же ошибку, что и выше.

Есть идеи о том, что может быть возможным?

Просто для ясности: Эти 2 таблицы не связаны никакими ключами. Только имя столбца одинаковое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...