2013-04-26 4 views
1

나는 경쟁자와 경쟁 모델을 가지고 있는데, 이전에는 양식과 선택적인 "질문"필드가 포함되어 있는데, 관리자 사용자가 그것을 기입하지 않으면 표시되지 않습니다.레일즈에 조건부로 표시된 필드 검증하기

경쟁 참가 모델에는 질문이있는 경우에만 유효성을 검사해야하는 "답변"필드가 포함되어 있지만 달성 방법을 모르겠습니다. belongs_to/has_many 연결을 활용할 수있는 방법이 있습니까? 그들은 가지고 있니?

+0

어쩌면 당신은'validates_associated'을 찾고 있습니까? –

답변

1

메서드에 조건부로 조건부를 적용하고 해당 메서드에서 관련 모델을 검사 할 수 있습니다.

class CompetitionEntry < ActiveRecord::Base 
    validates :answer, :presence => true, :if => :validate_answer? 

    def validate_answer? 
    !self.competition.question.blank? 
    end 
end 

A railscast about conditional validations!

+0

그건 정확히 내가 필요로하는 것입니다. - 정말 고마워요. :) – sowasred2012

관련 문제