모델 개발 - 유효성 검사 구현

보통 클라이언트 측에서 유효성 검사를 할 때는 자바스크립트 라이브러리를 사용한다. 근데 이는 자바스크립트 기능을 꺼버리면 손쉽게 무시할 수 있다. 따라서 일단 클라이언트에서 예비 유효성 검사를 수행하여 유효성 검사마다 통신이 발생하는 낭비를 막고, 서버에서는 최종적인 검사를 한 번 더 수행하는 것이 일반적이다.

검사 규칙은 validates 메서드를 사용하면 된다. 참고로 Rails에서 정규식을 쓸 때는 ^$\A\z 기호를 사용한다.

입력항목을 공백으로 두었을 때 여러 항목의 유효성 검사 결과가 경고창으로 한번에 표시되면 필요 이상으로 많은 오류가 출력되어 왜 오류가 나는지 근본적인 원인을 찾아내기 어려워진다.

allow_nilallow_blank 옵션을 잘 사용해보자.

ifunless 옵션을 아래처럼 이용하면 메일 수신 동의(dm)을 체크했을 때만 메일 주소 기입이 필수가 되도록 만들 수 있다.

class User < ActiveRecord::Base
  validates :email, presence: { unless: 'dm.blank?'}
end

Last updated