다음 구문을 사용하면 유효성 검사에 문제가 있습니다. 오류가 없습니다.레일 유효성 검사 및 사용자 정의 오류 메시지
validates :title, uniqueness: true
그러나이 코드로 변경하면 오류가 발생합니다. 여기
validates :title, uniqueness: {message: 'Title must be unique'}
은 완전성에 대한 테스트입니다 :
test "product is not valid without a unique title " do
product = Product.new(title: products(:ruby).title,
description: "yyy",
price: 1,
image_url: "fred.gif")
assert !product.save
assert_equal "has already been taken", product.errors['title'].join('; ')
end
나는 루비 제품의 책 제목을 추가하는 고정 등
내가 알고있는 것처럼 두 검증은을해야 한 같은, 그냥 하나의 사용자 정의 오류 메시지를 제공합니다. 이것은 사용자 정의 메시지를 사용할 때 발생하는 오류입니다.
1) 실패 : test_product_is_not_valid_without_a_unique_title_ <는 "이미 촬영되었습니다"(ProductTest)> 예상하지만 <는 "제목은 고유해야합니다"였다>.
미리 도움을 주셔서 감사합니다. 여기
사용자 지정 메시지를 볼 것으로 예상되지는 않지만 중복 제목을 삽입하지 않으면 메시지가 전혀 들리지 않습니다. 필드 이름을 넣지 말고 팁 주셔서 감사합니다;) – Lee
테스트 DB가 이미 조명기로 채워져 있지 않습니까? 기존 타이틀이있는 레코드를 만드는 것처럼 보입니다. – jdoe
예, 그렇지만 맞춤 메시지를 사용하는 경우와 상관없이 오류가 발생하지는 않습니다. validates : title, uniqueness : 테스트를 실행할 때 true가 계속 실패를 유발해야합니다. Fixture가 DB에 테스트 데이터를로드 할 것이므로 validates 절이 실패를 트리거해야합니다. 내가 놓친 게 아니라면? – Lee