【问题标题】:Validating the presence of a dynamically created object with a particular value验证是否存在具有特定值的动态创建的对象
【发布时间】:2016-02-11 02:01:49
【问题描述】:

我有两个型号CompanyPerson。它们是相关的,例如Company has_many :people。您可以通过使用 cocoon 将任意数量的人添加到Company。一个人有几个字段,其中一个是布尔值:boss

我想设计创建一个验证,以确保当公司保存时,它会确保至少有一个员工是老板 (boss: :true)。

现在我可以检查以确保公司有人与

validates_presence_of :people

但我追求的是类似的东西

validates_presence_of people.where(boss: true)

有没有一种快速、干净的方法来做到这一点?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails validation ruby-on-rails-4


    【解决方案1】:

    让我们为验证创建自定义方法

    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
    

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 1970-01-01
      • 2019-03-31
      • 2016-05-25
      • 2017-06-23
      • 2021-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多