0

所以我有一个Links链接表,最初是使用 Nokogiri 填充的。

我刚刚爬取了一个站点,获取了站点中的所有链接并将它们转储到一个表中。

我不希望其中一些更改过于频繁——也许每月一次。有些永远不会改变。但基本上我想运行我的方法,然后执行 Nokogiri 并返回链接列表。

我想根据我的数据库检查每个链接,并且仅在找到不在数据库中的链接时添加新记录。

我该如何以最有效的方式做到这一点?

假设我有一系列new_links从 Nokogiri 获得的最新链接。

谢谢。

4

1 回答 1

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) }

优雅的 ?

于 2012-06-19T23:25:33.907 回答