2
관련 모델의 다른 필드가 특정 값인 경우에만 한 필드의 유효성을 검사하는 방법을 알아야합니다. 예를 들어 :레일즈 - 다른 모델의 필드 유효성 검사
// 내 모델
class Course < ActiveRecord::Base
has_many :locations, :dependent => :destroy
accepts_nested_attributes_for :locations
end
class Location < ActiveRecord::Base
belongs_to :course
end
코스가 많은 지역 (주, 도시 등)뿐만 아니라 시작일을 가질 수 있습니다. 내 위치 모델에서
내가 좋아하는 뭔가를 시도했다 "location.start_date이 course.format == 'DVD는'하는 경우에만 공백 허용": 내가 사용하는 그런
validates_presence_of :start_date,
:message => "Start Date can't be blank",
:allow_blank => false,
:if => Proc.new { |course| self.course.format != 'DVD' }
을 내가 좋아하는 뭔가를 갖고 싶어 그게, 내가 얻을 : 개인 메서드 '형식'nil : NilClass 호출
만약 내가 올바른 방향으로 가고 있는지 확실하지.
감사합니다.
@ 브랜 던 ... 그렇습니다. 나는 그것을 뒤로했다. 이제는 다른 문제에 대한 경계가 될 수 있으므로 유일한 문제는 새로운 코스를 만들 때 Nil이라는 Nil 클래스라는 private 메소드 '형식'을 얻게된다는 것입니다. 나는 이것이 아직 실제로 만들어지지 않았고 그 위치가 아직 연결될 것이 없기 때문에 이것이라고 믿습니다. – keldog
proc을 수정하여'| location | ! location.course.nil? && location.course.format! = 'DVD'' –