【问题标题】:mongoid uniqueness validation many-to-many relationmongoid 唯一性验证多对多关系
【发布时间】:2010-09-09 12:00:18
【问题描述】:

我有以下关联

class Employee
  include Mongoid::Document
  employee_id :name
 references_many :companies, stored_as => :array, :inverse_of => :employees
end

class Company
  include Mongoid::Document
  field :name
 references_many :employees, stored_as => :array, :inverse_of => :companies
end

现在如何检查单个company 中员工employee_id 的唯一性

【问题讨论】:

    标签: many-to-many mongoid validation unique


    【解决方案1】:

    嘿,加根。首先,需要更正 Employee 模型中的这一行:

    employee_id :name

    对于验证,您应该可以这样做:

    class Employee
      include Mongoid::Document
    
      field :employee_id, :type => Integer
    
      references_many :companies, :stored_as => :array, :inverse_of => :employees
    
      validates_uniqueness_of :employee_id
    end

    您可以像这样轻松测试它:

    >> e = Employee.create :employee_id => 10
     => #
    
    >> Employee.new(:employee_id => 10).valid?
     => false
    

    【讨论】:

    • 是的.. 您所写的内容绝对适合单个员工模型。但我想要的是employee_id 在一家公司中是独一无二的。两个员工可以有相同的employee_id,但他们应该在不同的公司。我希望你明白我的意思。
    • 我遇到了同样的问题,我认为编写自己的验证器最简单。我可能会在下周做,如果可以的话,我可以在这里发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多