继承我的代码
def inside
@events = Newevent.all
event = @events.where(geturl)
gmiurl = Gmi.where(merchantdeeplink: event)
@gmi = !gmiurl
end
所以,我在这里尝试做的是检查geturl(我的数据库表中的一列),并将其与还有url的merchantdeeplink进行比较。然后只展示那些不匹配的东西。
有任何帮助吗?我可以尝试更好地解释
萨姆
答案 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)