class Parent
has_one :child
accepts_nested_attributes_for :child
end
class Child
belongs_to :parent
end
중첩 된 개체 형식을 사용하여 하위 모델에 몇 가지 추가 유효성 검사를 추가해야합니다. 이것들은 항상 하위에서 실행되는 것은 아니므로 하위의 validate
메소드에 넣을 수는 없습니다. Parent의 validate 메소드에서 검사하는 것이 현명한 것으로 보이지만 오류 메시지를 올바르게 추가하는 데 문제가 있습니다.중첩 모델에 대한 사용자 정의 유효성 검사 오류
이가하는 일 :
class Parent
...
def validate
errors[ :"child.fieldname" ] = "Don't be blank!"
end
그러나 우리는 국제화와 CSS 오류 필드에 강조와 같은 좋은 점을 잃게됩니다. 당신이 if:
로 조건문을 설정할 수 있습니다, 즉 그러나 검증 한 이후
def validate
errors.add :"child.fieldname", :blank
end
내 생각은 항상 하위 모델에 대해 자식 유효성 검사를 수행하는 것입니다. 왜 그렇게하지 않습니까? –
다른 상황에 대한 유효성 검사가 다릅니다. 필자의 특별한 경우에는 부모가없는 자식 모델이 만들어지며 부모를 통해 생성 된 자식 모델보다 느슨한 유효성 검사가 수행됩니다. –
부모의 존재를 조건으로합니다. 여전히 자녀 모델에 보관해야합니다. –