Ruby on rails 验证两个属性的唯一性

Ruby on rails 验证两个属性的唯一性,ruby-on-rails,activerecord,rails-activerecord,Ruby On Rails,Activerecord,Rails Activerecord,我有一个名为“汽车”的模型 我想知道如何在模型中声明,以便当两个属性相互匹配时,只能存在一条记录。例如,在汽车模型中 :owner_id, :driver_id 假设存在一个记录: :id => "1", :owner_id => "22", :driver_id => "23", :state => "parked" 如果我尝试创建另一条记录,该记录也具有相同的所有者id和驾驶员id,并且彼此匹配,则该记录将无法创建自身。我正在尝试建立一个关系模型,当匹配时,将为每

我有一个名为“汽车”的模型

我想知道如何在模型中声明,以便当两个属性相互匹配时,只能存在一条记录。例如,在汽车模型中

:owner_id, :driver_id
假设存在一个记录:

:id => "1", :owner_id => "22", :driver_id => "23", :state => "parked"

如果我尝试创建另一条记录,该记录也具有相同的
所有者id
驾驶员id
,并且彼此匹配,则该记录将无法创建自身。我正在尝试建立一个关系模型,当匹配时,将为每个车主和司机创建一个记录

车型中,您可以定义验证:

validates :driver_id, uniqueness: { scope: :owner_id }

我相信这会给您提供预期的行为,如果您尝试创建另一辆具有相同驾驶员和车主的汽车,则会出现验证错误。

在您的
汽车
模型中,您可以定义验证:

validates :driver_id, uniqueness: { scope: :owner_id }
我相信这会给你一个预期的行为,如果你尝试用同一个司机和车主创建另一辆车,将会有一个验证错误