我在ror中创建了一个脚手架,以便包含元素之间的某些关系
+----------------------+
| left | right | score |
+----------------------+
因此,如果我有一个条目a, b, 10
,则表示从a
到b
的关系是10.但是左右对应代表fk's
我们可以得出结论:b
与a
的关系也是10。
执行validates_uniqueness_of :left, :scope => [:right]
之类的操作不会阻止该对显示在表格中,如下所示:b, a, 10
我想这样的事情:
validates_uniqueness_of :left, :scope => [:right]
validates_uniqueness_of :right, :scope => [:left]
可以做到这一点,但有没有更清晰或更合适的方法来对称地验证对的唯一性?
一旦得到答案,工作就差不多完成了。
如何阻止在两列上显示相同的值?
例如。不应允许此类条目:a, a, 15
感谢您的考虑。
答案 0 :(得分:0)
可能会根据您的需求进行验证。我不知道。
如果没有,请考虑使用custom validation
class MyValidator < ActiveModel::Validator
def validate(record)
unless record.name.starts_with? 'X'
record.errors[:name] << 'Need a name starting with X please!'
end
end
end
class Person
include ActiveModel::Validations
validates_with MyValidator
end