我有一个想法来验证 has_many 关联的唯一性:如果我们根据关联记录的 id 生成一个字符串怎么办?
例如:
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 我不确定“校验和”是否正确。)