所以我有一个表Links
的链接,最初是使用Nokogiri填充的。
我刚刚抓取了一个网站,获得了该网站中的所有链接并将其转储到表格中。
我不希望他们中的一些经常变化 - 也许每月一次。有些人永远不会改变。但基本上我想运行我的方法然后执行Nokogiri并返回一个链接列表。
我想检查针对我的数据库的每个链接,并且只在找到不在数据库中的链接时添加新记录。
如何以最有效的方式实现这一目标?
假设我从Nokogiri获得了最新链接的数组new_links
。
感谢。
答案 0 :(得分:1)
仅插入新链接
#Remove found links from new_links array and insert them into DB
links_to_insert = new_links - Link.where(['url IN (?)', new_links])
links_to_insert.each { |link| Link.create!(link) }
优雅?