1
레일즈 모델에서 유효성 검사를 위해 조건부 allow_nil 옵션을 사용할 수 있는지 궁금합니다. 내가하고 싶은 무엇레일 모델 유효성 검사 조건부 allow_nil?
는
그래서 내가 초안으로 저장 될 수있는 제품의 모델이 몇 가지 논리에 (다른 속성)을 따라 allow_nil 할 수있을 것입니다. 초안으로 저장 될 때 가격은 0이 될 수 있지만 초안이 저장되지 않으면 가격이 숫자 여야합니다. 나는 어떻게 이것을 할 수 있는가? 다음은 작동하지 않는 것 같습니다. 임시 사례의 경우 작동하지만 상태가 초안이 아닐 때도 허용합니다.class Product<ActiveRecord::Base
attr_accessible :status, price
validates_numericality_of :price, allow_nil: :draft?
def draft?
self.status == "draft"
end
end
레일 문서를 보면 방법이 allow_nil을 통과 할 수있는 옵션이없는 것처럼 보이는?
한 가지 가능한 해결책은 두 경우 모두
with_options :unless => :draft? do |normal|
normal.validates_numericality_of :price
end
with_options :if => :draft? do |draft|
draft.validates_numericality_of :price, allow_nil: true
end
이 작업을 얻을 수있는 다른 방법에 대해 별도의 검증을 할 수있다?
감사
감사합니다. 이것은 제가 제안한 것과 같습니다. 조건부 allow_nil을 갖는 방법이 있는지 궁금한가요? 어쨌든 고마워. 받아 들일거야. – Abid