0

내 모델 Goal에는 goal_type, 및 is_complete의 세 가지 속성이 있습니다.
Goalbelongs_to :user.특정 조건의 validates_uniqueness_of를 사용하는 데 어려움이 있습니다.

goal_type 할 수있는 전용 "X", "Y"또는 "Z"가 될

goal_length

is_complete이 참 또는 거짓 일 수있다 "짧은", "중간"또는 "긴"할 수있다

나는 모두 동일한 사용자에 속하고 is_complete 거짓

0으로 설정 한 목표를 볼 때 오직 지정된 goal_lengthgoal_typeGoal ( validates_uniqueness_of) 하나있을 싶어

일반 영어 예 : 사용자가 아직 완료하지 않은 shortX 목표를 가지고

경우, 새로운 shortX 목표를 만들 수 없습니다. 사용자가 완료 한 shortX 목표를 가지고있는 경우 새로운 shortX 목표를 만들 수 있습니다.

이 유효성 검사는 작동하지만 기존 목표에 is_complete 속성이 true로 설정되어 있는지 확인하지 않습니다. is_complete은 기존의 모델에 해당하는 경우, 동일한 속성을 가진 새로운 목표를 만들 괜찮 :

validates_uniqueness_of :goal_type, scope: [:goal_length, :user_id] 
나는 유효성 검사가 무시 조건에 대한 검사를 추가하는 방법

경우 일치하는 이전 목표 is_complete가 true로 설정되어 있습니까?

답변

0

이 검증은 예상대로 작동하도록 나타납니다

validates_uniqueness_of :goal_type, scope: [:goal_length, :user_id], conditions: -> { where(is_complete: false) } 
관련 문제