ruby-on-rails - 验证具有特定值的动态创建的对象是否存在

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

我有两个模型 CompanyPerson。它们是相关的,例如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/

相关文章:

ruby-on-rails - 邪恶的 PDF : How to remove top margin from COVER page?

ruby-on-rails - 添加一个包含多个 "Account"的 "Users"

javascript - jquery 验证器 onfocusout 不适用于复选框和 radio

javascript - 使用 JQuery 验证插件的条件验证

ruby-on-rails - elasticsearch rails - 非法纬度值

ruby-on-rails - 使用 Ruby on Rails 4 制作 sitemap.xml

ruby-on-rails - 哪个浏览器完全支持REST。是指获取、发布、放置和删除方法?

mysql - 困难的 Rails ActiveModel 查询

ruby-on-rails - 如何编写轮胎重新索引所有ES索引的任务?

xml - 在nodejs中解码之前验证xml/json