커스텀Validation
너무 오랜만이다...
상황
모델에서 validation 검사할 때, 우리만의 validation을 만들고 싶어!
기본적으로 모델에서 validation 을 해주기 위해서는 validates :rule_id, inclusion: { in: ["pending", "canceled"]}
처럼 하면 된다. 여기서 주목할 건 validates다. 이 validates 는 레일즈에서 기본적으로 제공하는 validation
이다.
모델 속성이 어딘가에 속하고 그런거라면 validates 를 사용하면 된다. 만약 우리가 우리만의 커스텀 validation을 만들기 위해서는 어떻게 해야할까?
해결
바로 validates 를 사용하면 된다.
만약 우리의 모델에 start_date
와 end_date
속성이 있다고 하자. 당연하겠지만 start_date
는 end_date
보다 미래면 안된다. 이때 validation
을 해주는 우리만의 함수를 만들어보자.
바로 위의 코드처럼 만들면 된다.
서버에서 model.create
또는 model.save
를 하게 되면 model.rb
파일의 validation
들을 적용시키고 errors
가 단 하나라도 추가 된다면 해당 데이터는 모델의 데이터가 되지 못하고 에러로 끝나게 된다.
Last updated