防止在Rails模型中重复

时间:2019-02-05 10:00:20

标签: ruby-on-rails validation duplicates

我得到了地址哈希。我正在通过嵌套属性建立地址。 如果地址哈希重复(即地址1,邮政编码,国家/地区,城市)组合已经存在,则跳过并继续进行下一个地址哈希并创建。 我想在模型中编写它。 自定义验证将停止执行。 达到相同效果的另一种选择

1 个答案:

答案 0 :(得分:0)

def insert_address_with_hash(hash)
  Address.create!(hash)
rescue ActiveRecord::RecordNotUnique => e
  puts 'Ignore dups'
end

和迁移(模板)

class AddUniqIndexOnAdresses < ActiveRecord::Migration
  def change
    add_index :addresses, [:address1, :zip, :country, :city], :unique => true
  end
end

请确保您的表中没有非唯一的行,否则迁移将无法进行。