我需要执行验证以确保公司内只有一个用户可以存在于给定的类别中.
validates :user_id,:uniqueness => {:scope => [:category,:company_id],:message => "already exists"}
解决方法
这是检查唯一性并强制将错误分配给:user属性的简单方法:
class User < ActiveRecord::Base validate :user_unique_per_company_per_category private def user_unique_per_company_per_category if self.class.exists?(:user_id => user_id,:company_id => company_id,:category => category) errors.add :user,'already exists' end end end
我认为,如果您能找到一种方法来使用默认验证:user_id,那可能更好,但也许你有一个特殊的用例.
此外,如果您没有在表单中使用它,您可以考虑将错误分配给:base,因为您可能会混淆期望出现错误的未来开发人员:user_id:
errors.add :base,'already exists'
原文地址:https://www.jb51.cc/ruby/269609.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。