sto*_*nep 1 activerecord ruby-on-rails rails-activerecord
我有一个名为"汽车"的模型
我想知道如何在模型中声明,这样当两个属性相互匹配时,只能存在一条记录.例如,在汽车模型中
:owner_id, :driver_id
Run Code Online (Sandbox Code Playgroud)
假设存在一条记录:
:id => "1", :owner_id => "22", :driver_id => "23", :state => "parked"
Run Code Online (Sandbox Code Playgroud)
如果我尝试创建另一条记录,它也具有相同owner_id且driver_id相互匹配的记录,则记录将无法创建自己.我正在尝试建立一个关系模型,在匹配时为每个所有者和驱动程序创建一条记录.
在您的Car模型中,您可以定义验证:
validates :driver_id, uniqueness: { scope: :owner_id }
Run Code Online (Sandbox Code Playgroud)
我相信这应该给你预期的行为,如果你尝试使用相同的驱动程序和所有者创建另一辆汽车,将会出现验证错误.
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |