我有两个模型Company
和Person
。它们与Company has_many :people
相关。您可以通过使用cocoon将任意数量的人添加到Company
。一个人有几个字段,其中一个是布尔值:boss
。
我想设计创建验证以确保公司保存时,它确保至少有一个人是老板(boss: :true
)。
现在我可以检查以确保公司有人
validates_presence_of :people
但我喜欢
之类的东西validates_presence_of people.where(boss: true)
有快速,干净的方法吗?
提前致谢。
答案 0 :(得分:3)
让我们创建自定义验证方法
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