Ruby on rails 在不创建重复记录的情况下多次运行rake db:seed?

Ruby on rails 在不创建重复记录的情况下多次运行rake db:seed?,ruby-on-rails,ruby,database,postgresql,seeding,Ruby On Rails,Ruby,Database,Postgresql,Seeding,我想修改seed文件中的一些代码,以便在多次运行seed命令时不会创建重复记录。有没有办法从我的seeds文件中修改下面的代码,使之成为可能?除非我弄错了,否则find_或create_by方法在这里似乎不起作用 data_file = Rails.root.join('db/data/data.csv') CSV.foreach(data_file) do |row| TownHealthRecord.create( city: row[0], state: row[1]

我想修改seed文件中的一些代码,以便在多次运行seed命令时不会创建重复记录。有没有办法从我的seeds文件中修改下面的代码,使之成为可能?除非我弄错了,否则find_或create_by方法在这里似乎不起作用

data_file = Rails.root.join('db/data/data.csv')

CSV.foreach(data_file) do |row|
  TownHealthRecord.create(
    city: row[0],
    state: row[1],
    country: row[2],
    zip_code: row[3],
    area_code: row[4]
    )
end

使用验证。如果不希望重复记录,请验证一个或多个字段的唯一性。在你
town\u health\u record.rb中

class TownHealthRecord
  validates_uniqueness_of :city
  validates uniqueness_of :health, scope: :person # If you wanted to validate a combination of fields
end

在添加的一侧,不,
。创建将引发错误<代码>。创建
将不会。这同样适用于
save
。更新属性

为什么您认为
查找或创建方法在这里不起作用?