我有两个模型 Company
和 Person
。它们是相关的,例如Company has_many :people
。您可以通过使用 cocoon 将任意数量的人员添加到 Company
中。一个人有多个字段,其中之一是 bool 值 :boss
。
我想设计创建一个验证,以确保当公司保存时,它会确保至少有一个人是老板(boss: :true
)。
现在我可以检查以确保公司拥有具有以下特征的人员
validates_presence_of :people
但我追求的是类似的东西
validates_presence_of people.where(boss: true)
有没有一种快速、干净的方法来做到这一点?
提前致谢。
最佳答案
让我们创建自定义验证方法
validate :at_least_one_person_is_boss
def at_least_one_person_is_boss
if self.people.where(boss: true).count == 0
errors.add(:people, "at least one person is boss")
end
end
关于ruby-on-rails - 验证具有特定值的动态创建的对象是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329518/