rails比较不同数据库表中的两个URL

时间:2016-01-19 19:58:58

标签: ruby-on-rails

继承我的代码

  def inside
    @events = Newevent.all
    event = @events.where(geturl)
    gmiurl = Gmi.where(merchantdeeplink: event)
    @gmi = !gmiurl
  end

所以,我在这里尝试做的是检查geturl(我的数据库表中的一列),并将其与还有url的merchantdeeplink进行比较。然后只展示那些不匹配的东西。

有任何帮助吗?我可以尝试更好地解释

萨姆

1 个答案:

答案 0 :(得分:0)

按照您的设计模式,您可以执行以下操作:

  def inside
    @events = Newevent.all
    @gmi = Gmi.all

    @events.each do |event|
      @gmi.select do |item|
       item.merchantdeeplink != event.geturl
      end
    end
  end

这不是检查字符串是否相等(效率非常低)的最佳方法。如果你的桌子以某种方式连接在一起,你可以使用INNER JOIN然后检查它们的相等性来更有效地做到这一点。

<强>更新

正如@Leito建议的那样:

event_urls = Newevent.pluck(:geturl)
@gmis = Gmi.where.not(merchantdeeplink: event_urls)