2014-01-13 127 views
0

我有兩個參數:work和:grade。在模型中,在保存之前,我想使用validates_uniqueness_of來檢查給定的獨特工作,只有一個等級。其他工作的年級可以相同。我怎麼寫這個?Ruby on Rails:讓validates_uniqueness_of工作

編輯:

validates_uniqueness_of:工作:範圍=>:等級

+0

發佈您的模型的代碼將有利於回答這個問題。 –

+0

指定的代碼__not__做了什麼,你希望它做什麼? – zeantsoi

+0

如果我創作了作品:「測試」和等級:77,如果我創作作品「測試2」並且等級:77 – Julia

回答

3

如果你有一個過時的語法警告,可以寫這樣:

validates :work, uniqueness: {scope: :grade}, presence: true 

編輯:

看來你需要一個雙向檢查,所以也許增加這將工作:

validates :grade, uniqueness: {scope: :work}, presence: true 

雖然在高負載下我看到了這個失敗,所以最好的是創建一個數據庫約束。

+0

我沒有得到過時的語法警告。這不適合我的情況:工作:「測試」和等級:77,如果我創建作品「測試2」和等級:77 – Julia

+0

@Julia你會嘗試添加約束嗎? ? – nurettin

+0

是的,我試了兩次,它不起作用 – Julia

相關問題