2012-06-21 4 views
1

나는 유효성을 검사하는 폼이 있습니다. 유효성 검사는 몇 가지 다른 모델 객체의 속성을 기반으로하지만 양식 자체는 ActiveRecord 모델과 일치하지 않습니다.레일에서의 동적 폼 유효성 확인

ActiveModel을 사용하여이를 구현할 수 있습니까?

class Person < ActiveModel 
    has_one :shoe 
    validates :name, :length => { :maximum => self.shoe.size } 
end 

기본적으로 다른 모델 개체의 속성을 기반으로 폼의 유효성을 검사하고 싶습니다. 이것은 어쨌든 가능합니까?

+0

ActiveModel/ActiveRecord에 어떤 문제가 있는지 확실하지 않습니다. 당신이 원하는 것은 유효성 검사에서 레코드를 참조 할 수 있다는 것입니다. –

+0

'문제'가 없습니다. 난 그냥 다른 클래스의 속성을 기반으로 비 ActiveRecord 모델에서 유효성 검사를하고 싶습니다. – willcodejavaforfood

+0

하지만 ActiveRecord 모델을 표시하고 있습니다. 검증은 개인 클래스를 자체적으로 참조하지만 실제로 유효성이 검증 된 레코드를 참조하기위한 것입니다. 제발 명확히하십시오 –

답변

2
class Person 
    include ActiveModel::Validations 

    # has_one :shoe # This won't work 

    validates :validates_name_length 

    private 
    def validates_name_length 
    errors.add :name, 'too long' if name && name.length > shoe.size 
    end 
end 
+0

나는 그것을 시도 할 것이다 :) – willcodejavaforfood