2014-03-06 2 views
2

사용자 정의 유효성 검사기에 문제가 있습니다. 나는이처럼 보이는 모델 Price 가지고 :레일 4 사용자 지정 유효성 검사

class Price < ActiveRecord::Base 
    belongs_to :car 
    validates :from_days, :to_days, :netto_price, presence: true, numericality: true 
    validate :days_range_validation 

    private 

    def days_range_validation 
    unless to_days > from_days 
     errors[:to_days] << I18n.t('price.must_be_greater') 
    end 
    end 
end 

을 그리고 그 문제는 내가 내 양식에 빈 to_daysfrom_days을 떠날 때, 나는 다음과 같은 오류 얻을 수 있습니다 : 지금

undefined method `>=' for nil:NilClass 

과 목표는 from_daysto_days이있을 때만이 유효성 검사기를 사용하는 것이지만 어떻게 수행해야할지 모르겠다. 어떤 아이디어?

답변

2

당신은 :if 옵션을 설정해야합니다

validate :days_range_validation, :if => :days_ranges_present? 

# ... 
private 

def days_ranges_present? 
    to_days.present? && from_days.present? 
end 
+0

을 그리고 이것은 좋은 대답이다. –

+0

@ MateuszUrbański 감사합니다. 그 대답을 받아 들일 수 있겠습니까? –

관련 문제