2014-01-13 44 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