2011-01-23 4 views
2

Ruby on Rails 웹 응용 프로그램을 작성 중입니다. 하나 이상의 필드의 고유성을 함께 검증하려고합니다. 내가 어떻게 할 수 있니?세 개의 다른 필드에서 유일 함

예를 들면 : 나는 세 개의 필드로 waiting라는 이름의 모델을 가지고 :

project_idcategory_id 나는 내가 의 모든 세 개의 필드를 두 개의 동일한 행이되지 않도록 할

user_id.

답변

-1

꽤 아니지만 이것은 나를 위해 작동 :

class Waiting < ActiveRecord::Base 
    validate :must_be_unique 

    def must_be_unique 
    if self.class.where(project_id: project_id, category_id: category_id, user_id: user_id).exists? 
     errors.add(:base, 'Must be unique') 
    end 
    end 
end 

물론 당신이 당신 DB 스키마에서 고유 키를 사용할 수 있습니다 다음, 당신이 필요로하는 드문 경우에 관련 예외를 잡을 수있어.

+0

조금 더 청결한 것을 찾는 ... 더 많은 레일 ... – Nayish

+0

충분히. 이것을 위해 새로운 EachValidator를 구현할 수 있어야합니다. 나는 확실히 하나를보고 싶습니다. – noodl

관련 문제