2012-10-29 3 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? 메서드가 호출 될 때 데이터베이스를 누르십시오. 그걸 추출 할 수 있을까요? 유일성 검사기는 많은 다른 사람들에 의해 철저히 테스트되었으므로 위의 마지막 줄은 나를 위해 충분합니다.

모델 사양 중에 DB를 실행해야한다면 큰 문제는 아니지만 가능하면 회피해야합니다.

답변

0

.valid? 메서드는 여전히 ActiveModel에서 작동해야합니다. Mongoid에 포함 된 항목은 알지만 ActiveModel이 있어야합니다. include ActiveModel:Validations

이것은 분명하지 않지만 ActiveModel은 데이터베이스를 시도하지 않습니다.

관련 문제