简体   繁体   English

Rails 4-基于多种模型的验证

[英]Rails 4 - Validation based on Multiple Models

I have USERS, CATEGORIES and WORKGROUPS. 我有用户,类别和工作组。 A user belongs to a workgroup: user.workgroup_id. 用户属于工作组:user.workgroup_id。 A category belongs to a workgroup: category.workgroup_id. 类别属于工作组:category.workgroup_id。 WORKGROUP has many users and categories. WORKGROUP有许多用户和类别。

I need to write a model validation that disallows assigning a category.workgroup_id where no existing user has that particular workgroup_id, with an error message like, "Sorry, but no one belongs to that workgroup, so you may not assign it to this Category." 我需要编写一个模型验证,不允许在没有现有用户拥有该特定workgroup_id的情况下分配category.workgroup_id,并显示一条错误消息,例如“抱歉,但没有人属于该工作组,因此您不能将其分配给该类别。 ”

Any advice? 有什么建议吗? Thanks in advance. 提前致谢。

class Category < ActiveRecord::Base
  belongs_to :workgroup

  validate :workgroup_not_empty, if: Proc.new { workgroup_id_changed? }

  def workgroup_not_empty
    if workgroup.users.count == 0
      errors.add(:workgroup_id, "Sorry, but no one belongs to that workgroup, so you may not assign it to this Category.")
    end
  end
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM