两个表具有相同数据的Rails?

时间:2016-01-19 17:22:10

标签: ruby-on-rails

我正在尝试在我的视图中创建一个表,并在某些条件下填充它。

我有两个表,两个表里面都有两列,一列叫event_url,另一列是gmiurl。内部带有gmiurl的表称为GMITable,另一个称为newevent

基本上我想在GMITable内显示所有内容,除非列event_url内部的网址与gmiurls内的GMITable内的任何网址匹配

我目前除此之外没有任何代码

@GMI = GMITable.all

1 个答案:

答案 0 :(得分:0)

您可以使用表A到表B中的LEFT OUTER JOIN轻松实现结果,如this visual explanation中所述。

具体来说,你想要的是:

  

要仅在表A中生成记录集,而不在表B中生成记录集,我们执行相同的左外连接,然后通过where子句从右侧排除我们不想要的记录。

在你的问题中,不清楚如何调用表,以及它们如何相互关联。但是,要实现结果,只需使用ActiveRecord join方法

在表之间执行连接
TableA.joins('LEFT OUTER JOIN TableB on TableA.field = TableB.field')

并仅选择其中的项目(TableB.id IS NULL。)

您必须根据自己的需要调整示例。