Ruby 如何快速扫描数据库并仅在外部源发生更改时更新它?

Ruby 如何快速扫描数据库并仅在外部源发生更改时更新它?,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,所以我有一个链接表Links,它最初是用Nokogiri填充的 我只是抓取了一个站点,获取了该站点中的所有链接,并将它们转储到一个表中 我不希望他们中的一些人经常改变——也许每月一次。有些永远不会改变。但基本上我想运行我的方法,然后执行Nokogiri并返回一个链接列表 我想对照我的数据库检查每个链接,并且只在发现不在数据库中的链接时添加一个新记录 我该如何以最有效的方式去做呢 假设我有一个数组new_links,其中包含我从Nokogiri获得的最新链接 谢谢。仅插入新链接 #Remove f

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

我只是抓取了一个站点,获取了该站点中的所有链接,并将它们转储到一个表中

我不希望他们中的一些人经常改变——也许每月一次。有些永远不会改变。但基本上我想运行我的方法,然后执行Nokogiri并返回一个链接列表

我想对照我的数据库检查每个链接,并且只在发现不在数据库中的链接时添加一个新记录

我该如何以最有效的方式去做呢

假设我有一个数组
new_links
,其中包含我从Nokogiri获得的最新链接


谢谢。

仅插入新链接

#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) }
优雅