验证两个属性的唯一性

时间:2013-03-19 23:45:13

标签: ruby-on-rails activerecord rails-activerecord

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

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

:owner_id, :driver_id

假设存在记录:

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

如果我尝试创建另一条记录,它也具有相互匹配的相同owner_iddriver_id,则该记录将无法创建自己。我正在尝试建立一个关系模型,在匹配时为每个所有者和驱动程序创建一条记录。

1 个答案:

答案 0 :(得分:7)

Car模型中,您可以定义验证:

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

我相信这应该会给你预期的行为,如果你尝试使用相同的驱动程序和所有者创建另一辆汽车,将会出现验证错误。