0

맞춤형 유효성 검사기로 일부 유효성 검사를 수행하는 것이 어렵다는 것을 알고 있습니다.여러 모델을 사용한 사용자 정의 유효성 검사

는 여기있다 :

class SomeValidator < ActiveModel::Validator 
    def validate(record) 
    if record.baggage > options[:max] 
     record.errors[:baggage] << "is over #{options[:max]}." 
    end 
    end 
end 

지금 나는 그것을 다른 모델에서 읽을 필요가이 번호를 보내려고하고있다. 이것은 내 검증 된 모델입니다 :

비행이 다른 모델을, 그리고 max_allowance 내가 읽고 싶은 번호
class Seat < ActiveRecord::Base 
    belongs_to :flight 
    validates :baggage, :some => {:max => flight.max_allowance} 
end 

. 이것은 물론 작동하지 않습니다.

제안 사항?

답변

0

인수로 Proc를 사용할 수 있습니다. 이런 식으로 뭔가 : PROC의 failed`와의 BigDecimal의 `비교 : 지금

validates :baggage, :some => {:max => Proc.new{|record| record.flight.max_allowance}} 
+0

이 오류가있어 – shime

관련 문제