2012-10-29 52 views
0

我有一個模型,它看起來是這樣的:驗證的獨特性,而不數據庫模型規格

class User 
    include Mongoid::Document 

    field :email 

    validate :email, presence: true, uniqueness: true 
end 

而且我有一個測試,看起來像......

it { User.new.should_not be_valid } 
it { FactoryGirl.build(:user).should be_valid } 
it { should validate_presence_of :email } 
it { should validate_uniqueness_of :email } 

這兩個要訪問數據庫時.valid?方法被調用。有什麼方法我可以抽象說出來?唯一性驗證已經被很多其他人的全面測試,所以上面的最後一行是我不夠好。

並不大,如果我必須在模型規範運行一個數據庫,但如果可能的話我寧願避免它的交易。

回答

0

的.valid?方法應該仍然與ActiveModel一起工作,我不太清楚Mongoid包括了什麼,但是你必須有ActiveModel include ActiveModel:Validations

這可能不是很清楚,但ActiveModel不會嘗試命中數據庫。