对nil值进行Rails唯一性验证

时间:2014-10-24 15:09:32

标签: ruby-on-rails ruby activerecord

我有一个有'term'和'section'属性的rails模型。 我想对这些属性进行唯一性约束,所以我尝试了这个:

validates_uniqueness_of :term, scope: :section

这只适用于'term'和'scope'都不是nil的情况,但我希望在有nil值时仍然适用约束。查看ActiveRecord :: Validations docs,我看到将'allow_nil'设置为false会阻止在a值为nil时跳过验证。但是此选项的默认值已经为假。

无论如何,我尝试将allow_nil设置为false和true,但行为没有变化。有没有人知道为什么当有零值时我无法使验证工作?

2 个答案:

答案 0 :(得分:0)

您只需添加

即可
validates_presence_of :term, :section

答案 1 :(得分:0)

"我希望唯一约束是术语和部分的组合。我不想单独约束它们。"

那个跨领域的验证;您需要构建自定义验证程序(使用validates_with)。 Read about that here.