Rails 사용자 지정 유효성 검사 컨텍스트

2396 단어 rails
Rails에서는 유효성 검사가 발생하는 시기를 지정할 수 있습니다. 때로는 새로운 유효성 검사를 도입하거나 일부를 건너뛸 수 있습니다. Railson 옵션은 이를 달성하는 데 도움이 됩니다.

class Post < ApplicationRecord
 validates :body, presence: true
 validates :title, uniqueness: true, on: :create 
 validates :published, exclusion: [nil], on: :update 
end


위의 유효성 검사에서:
  • 본문 없이 게시물을 만들거나 업데이트할 수 없습니다
  • .
  • 제목이 중복된 게시물을 업데이트할 수 있습니다
  • .
  • 게시된 nil
  • 로 레코드를 생성할 수 있습니다.

    일반적으로 사용되는 on: :createon: :update 레일 외에도 맞춤형 컨텍스트를 제공할 수 있습니다.

    class Post < ApplicationRecord
     validates :title, presence: true 
     validates :published_at, presence: true, on: :publish
    end
    


    위의 예에서 published_at 존재on: :publish를 확인합니다. 사용자 지정 컨텍스트는 컨텍스트 이름을 valid? invalid? 또는 save에 전달하여 명시적으로 트리거됩니다.

    post = Post.new(title: "Rails validations")
    post.valid? # true 
    post.valid?(context: :publish) # false 
    post.save(context: :publish) # false
    

    좋은 웹페이지 즐겨찾기