2010-09-09 65 views
3

我有以下的關聯mongoid唯一性驗證許多一對多關係

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

回答

0

嘿加甘的員工的employee_id唯一性。首先,這條線在你的員工的模型需要加以糾正:

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 
+0

是啊..你寫的是絕對正確的只是一個單一的員工模型。但是我想要的是在一家公司中獨一無二的employee_id。兩名員工可以擁有相同的employee_id,但他們應該在不同的公司。我希望你明白我的意思。 – Gagan 2010-11-05 05:02:22

+0

我得到了同樣的問題,我認爲編寫你自己的驗證器是最簡單的。我可能會在下週做,如果可以的話,我可以在這裏發佈。 – sandstrom 2011-03-10 12:23:38