2013-03-19 73 views
1

驗證的唯一我有一個模型命名爲「汽車」兩個屬性

我不知道如何可以在模型中聲明,這樣當兩個屬性相互匹配只能存在一個記錄。例如,在汽車模型

:owner_id, :driver_id 

比方說,一個記錄存在:

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

如果我試圖創造另一個紀錄,也有同樣的owner_iddriver_id是相互匹配,記錄將無法創造自己。我試圖建立一個關係模型,當它們匹配時,它將爲每個所有者和驅動程序創建一個記錄。

回答

6

在你Car模型,你可以定義驗證:

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

我相信這應該給你預期的行爲,將有一個驗證錯誤,如果你嘗試創建具有相同的驅動程序和所有者另一輛車。

+0

完美。謝謝。 – stonep 2013-03-20 22:37:49