Rails 유효성 검사 컨텍스트(Context) 구현
1. Rails 애플리케이션 설정 및 모델 생성
-
rails new valid_with_context명령어를 사용하여 새로운 Rails 애플리케이션을 생성합니다. -
rails generate scaffold Post title:string body:text명령어로Post모델과 기본적인 CRUD 기능을 위한 스캐폴드를 생성합니다. -
config/routes.rb파일에서 `root ‘posts
index’와 같이 루트 경로를 설정하고, app/controllers/posts_controller.rb에서 respond_to` 블록 등 불필요한 코드를 정리하여 예시의 복잡성을 줄입니다.
2. 조건부 유효성 검사 로직 추가
-
app/models/post.rb파일에 다음과 같이 유효성 검사 규칙을 정의합니다.on: :publish옵션은 해당 유효성 검사가:publish컨텍스트에서만 실행되도록 지정합니다.```ruby class Post < ApplicationRecord validates :title, :body, presence: true, on: :publish
def publish save(context: :publish) end end ```
-
게시물 생성/수정 폼(
app/views/posts/_form.html.erb)에