在Rails(Activerecord)中联接(/合并)2个不相关的表,这些表没有公共字段,但具有相同名称的列

时间:2019-07-03 14:53:14

标签: ruby-on-rails postgresql activerecord

我们有2个数据库表位于同一模块下。假设我们将服务器作为模块,将虚拟和物理作为类。

<ng-content></ng-content>

合并后,我希望它看起来像这样:

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

我需要一种方法来联接这些表,并使用这些列名将创建的表临时保存在内存中。我希望输出为ActiveRecord_Relation类型。我之所以这样认为是因为这些数据将进入数据表,并且需要进行排序,排序和分页。

当我这样做时:

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

我收到此错误:

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

当我这样做时:

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

我收到与上述相同的错误。

关于如何可能的任何想法?

为了明确起见: 这两个表与任何键都不相关。只有列名是相同的。

0 个答案:

没有答案