我有一个想法来验证has_many关联的唯一性:如果我们根据关联记录的id生成一个字符串,该怎么办?用字符串“校验和”验证has_many关联的唯一性
例如:
class Exam
has_many :problems #problems are unique and can be in multiple exams
validate :checksum, uniqueness: true #string
before_validate :check
def check
checksum = problems.map {|p| p.id}.join
end
end
我们要解决的边缘情况是: 鉴于不同的问题3x4
,sqrt(4)
,5+5
等..,我们不希望他们都处于不止一次考试。
有没有人有这种方法的想法?有没有更好的方法来验证has_many的唯一性?
(PS我不知道,如果 “检验” 是正确的术语)。
您能否提供更多关于此上下文的信息?为什么你需要has_many关联是唯一的?我可以想象,如果它是一个'has_many'(而不是has_and_belongs_to_many),那么没有两个考试会有相同的'问题'。 – Olives
@Olives你是对的:澄清,问题是独特的,可以在多个考试中。例如,'sqrt(4)='是唯一的,可用于多个考试。 –