2012-01-10 5 views
0

레일즈 2.3에서 유효성 검사를 작성하려고합니다.레일즈 2.3의 커스텀 유일성 검증

나는 두 개의 필드를 가지고 있는데, record_id와 user_id라고 부르 자.

record_id에는 Name 속성뿐만 아니라 user_id도 연결됩니다.

유효성 검사는 사용자가 새 레코드를 만들 때 Name 속성이 아직 사용되지 않았는지 확인해야합니다. user_id가 같지만 record_id가 다르면 사용자가 고유하지 않은 이름을 입력하려고 할 때 오류가 발생해야합니다.

record_id와 user_id가 같고 사용자가 이미 데이터베이스에있는 이름을 만들려고하면 사용자는 이미 사용중인 이름을 사용자에게 허용해야합니다.

나는 Rails 2.3에 대해 상당히 익숙해 져서 어떤 지침도 가장 높이 평가된다.

답변

1

그래서 ... 사용자별로 중복 된 이름을 확인하면서 여러 개의 이름을 허용 하시겠습니까?

validates_uniqueness_of :name, :scope => :user_id 
0

데이터베이스 측에서 [: user_id, : name]에 고유 색인을 추가하십시오.

validate_uniqueness는 성능에 큰 영향을 미칩니다. 모든 레코드 작성 또는 업데이트에 select를 추가합니다. 실제로는 동시 업데이트를 보장하지 않습니다.