加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在ruby on rails上避免数据库中的重复数据

发布时间:2020-12-17 01:57:29 所属栏目:百科 来源:网络整理
导读:我从另一个网站废弃了数据并将其保存在我的数据库中,该数据库工作正常.但是,无论何时刷新我的应用程序,报废的数据都会在我的数据库中复制.任何帮助都将受到高度赞赏.以下是我的代码 require 'open-uri'require 'nokogiri'doc = Nokogiri::HTML(open("www.exa
我从另一个网站废弃了数据并将其保存在我的数据库中,该数据库工作正常.但是,无论何时刷新我的应用程序,报废的数据都会在我的数据库中复制.任何帮助都将受到高度赞赏.以下是我的代码

require 'open-uri'
require 'nokogiri'
doc = Nokogiri::HTML(open("www.example.com"))
entries = doc.css('.block')
@entriesArray = []
entries.each do |row|
    Scrap.create!(                  
    title: title = row.css('h2>a').text,link:  link = row.css('a')[0]['href'],day:   days =row.css('time').text)
    @entriesArray << Entry.new(title,link,days)
end

解决方法

您可以使用模型验证来提高创建错误!如果任何验证失败.

class Scrap < ApplicationRecord
    validates_uniqueness_of :title
end

并且,只有在数据库中不存在时,您还可以使用first_or_create方法创建新记录:

entries.each do |row|
    title = row.css('h2>a').text
    link = row.css('a')[0]['href']
    day = row.css('time').text

    Scrap.where(title: title).first_or_create(                  
      title: title,link: link,day: day
    )
    @entriesArray << Entry.new(title,days)
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读